Как организовать архитектуру хранения\обработки данных в mysql?

Есть 5 таблиц, каждая обьёмом от 10мб до гигабайта. 1-я базовая
client_id;name;param1;param2;param3

и 4 вида
client_id;date;value
(value везде свои), с данными по дням из разных источников. Указан фильтр по датам и

Сейчас эти все таблицы последовательно leftJoin, и то, что получается, выдается юзеру в интерфейс с пагинацией, возможностью сортировки, групировки(по param1,param2 итп) фильтрации по всем полям.
Т.е запрос выглядит select name,sum(table1.value),sum(table2.value),... from table1 left join table2 on table2.client_id=table1.client_id [....] where [...] (order by [..]) (group by [...])

Индексы есть на всех полях, но всё равно работает долго (более 30 секунд на запросы с сортировкой и тп).
Чаще всего в фильтре указывается диапазон дат
Вопрос - как следует поступить в таком случае, какие-то хитрости\тонкости оптимизации? Спасибо.
  • Вопрос задан
  • 2452 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Shahelm
Как вариант почитайте про денормализацию бд.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы