У меня есть набор из 5 миллионов строк. Они хранятся в одной таблице MySQL MySQL. Мое приложение должно выполнять поиск и проверять, задана ли данная строка в наборе. Конечно, это можно сделать с помощью HashSet (на Java). Но вместо того, чтобы создавать собственное решение, мне было интересно, существуют ли какие-либо существующие широко используемые проверенные решения? Это похоже на общий сценарий. Решение должно быть масштабируемым (набор может увеличиться более чем на 5 миллионов), иметь отказоустойчивость (возможно, распределенную) и хорошо работать под огромным количеством запросов. Какие-либо предложения?Быстрый, масштабируемый поиск строк
Обновление: Мое приложение также может запросить проверку наличия заданного набора строк в глобальном (5 миллионов экземпляров).
Возможно, я не понимаю, что вы подразумеваете под «выполнением поиска» и «проверьте, задана ли данная строка в наборе» - не это просто то, для чего используется оператор выбора SQL? Отказоустойчивость и масштабирование также являются более или менее нормальными функциями РСУБД. – Sorpigal
Tries используются для быстрого поиска строк. Они намного эффективнее памяти, чем hashtables/hashsets, и не намного медленнее. – leppie
@Sorpigal: Да, но обычные запросы RDBMS не достаточно быстры. Я также обновил свой вопрос с точным сценарием. Надеюсь, что это очистит. – talonx