У меня есть веб-приложение Laravel, использующее интерфейс VueJS и MySQL в качестве СУБД. В настоящее время у меня есть таблица, которая имеет размер 23,8 ГБ и содержит более 8 миллионов строк, и она растет каждую секунду.
При запросе этих данных я объединяю их с 4 другими таблицами, поэтому весь набор данных огромен.
В настоящее время я вынимаю и отображаю только 1000 строк, так как мне больше не нужно. VueJS отображает данные в таблице, и пользователь может выбрать из 13 вариантов фильтрации, чтобы отфильтровать данные в диапазоне от даты, имени, статуса и т. Д.
Используя Eloquent и имея индексы MySQL, мне удалось сократить время запроса до приемлемого времени, но мне нужно, чтобы этот раздел приложения был максимально отзывчивым.
Некоторые из предложений where, которые запускаются из фильтров, выполняются за 13 секунд, что я считаю слишком длинным.
Я немного читал и думал, может быть MongoDB или Redis может быть вариантом, но у меня очень мало опыта с любым из них.
Для этого конкретного сценария, что, по вашему мнению, будет лучшим вариантом для максимизации производительности чтения?
Если бы я использовал MongoDB, я бы не перенес текущие данные ... У меня была бы вторая база данных, содержащая все новые данные. Это приложение еще не было запущено в производство, и в большинстве случаев потребуются данные только за последние 30 дней, но по-прежнему требуется возможность запрашивать старые данные, поэтому сохраняются и MySQL, и MongoDB.
Любые отзывы будут оценены.