У меня около 4 таблиц, одна из которых составляет около 10 миллионов строк (она увеличивается до 500 тыс. Строк в месяц), таблицы полностью оптимизированы, мой запрос как это:MySQL - InnoDB, кэширует часть запроса для более быстрого времени выполнения
SELECT COUNT(id), select... FROM table1
INNER JOIN table2 on ...,
INNER JOIN table3 on ...
INNER JOIN table 4 on...
WHERE [ different conditions every time ]
Этот запрос занимает около 1 минуты времени выполнения (которым слишком долго), и то, что я хочу, чтобы кэшировать первую часть запроса (все но не WHERE
), а затем, как только кеш сделан, примените запрос к кешированию where.
Общая идея заключается в том, чтобы выполнить первую часть запроса каждое утро (для Exemple) поместить в кэше этого запрос, чтобы иметь минимальное время выполнения, когда пользователи будут выполнять свои собственные запросы (с оговоркой WHERE
)
Я думаю, что это возможно, потому что я пытался «bechnmarking» выполнить запрос без WHERE (около 1 минуты времени выполнения), затем я запустил его с предложением WHERE и получил очень низкое время выполнения, поэтому я думаю, что он работает.
Но мне нужна помощь в этот момент, я не знаю, как увеличить спектакли, как поместить в кэш запрос без where
или если у вас есть лучшее решение ...
Спасибо заранее за ваше внимание
Если вы предоставите реальный запрос, схему и дополнительную информацию о своих данных, мы сможем помочь вам в дальнейшем. –