У меня есть база данных MySQL с ~ 20M записями (и растущими), распределенными в некоторых таблицах.В моей системе есть функция, где эта информация отображается на страницах.Итак, на данный момент все хорошо, мне просто нужно выполнить запрос с использованием SQL, выполнив несколько JOIN, и ограничить набор результатов размером страницы.
Проблема в том, что теперь мне нужно реализовать функцию сортировки, чтобы пользователь мог сортировать данные по любому столбцу.Добавление индексов во все столбцы, кажется, не является хорошим вариантом, и оставить его без индексов приведет к полному сканированию таблицы.И даже хуже всего: SQL ORDER BY может быть даже медленнее при сортировке по объединенному столбцу.
Поэтому я начинаю думать о других возможностях, таких как интеграция MySQL с Hadoop или Spark, но у меня нет опыта в этом.
Каков правильный путь?Haddop, Spark, ElasticSearch, или использовать другую стратегию с MySQL, или что-то еще?
Спасибо.