Как организовать архитектуру хранения\обработки данных в 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 секунд на запросы с сортировкой и тп).
Чаще всего в фильтре указывается диапазон дат
Вопрос - как следует поступить в таком случае, какие-то хитрости\тонкости оптимизации? Спасибо.