У меня большие таблицы MySQL с сотнями тысяч строк.
Мне нужно написать запрос на таблицу клиентов, в которой подсчитывается, когда клиенты снова смогут связаться.
например.
SELECT 'This week', COUNT(*) FROM customers
WHERE sales_person_id = 1 AND DATEDIFF(NOW(), available_date) < 7
UNION
SELECT 'Next week', COUNT(*) FROM customers
WHERE sales_person_id = 1 AND DATEDIFF(NOW(), available_date) >= 7
AND DATEDIFF(NOW(), available_date) < 14
UNION
... (a few more like this)
Написав аналогичный запрос для другой большой таблицы, я заметил, что изменение механизма с InnoDB на MyISAM значительно ускорило запрос (InnoDB не нужен для этих таблиц, так как они не проверяют внешний ключ). Могу ли я сделать что-нибудь еще, чтобы ускорить подсчет (например, индексировать соответствующие поля)?