У меня есть следующий запрос, который выполняется очень медленно (почти 50000 записей)
SELECT
news.id,
news.title,
DATE_FORMAT(news.date_online,'%d %m %Y')AS newsNL_Date
news_categories.parent_id
FROM
news,
news_categories
WHERE
DATE(news.date_online)=2013-02-25
AND news.category_id = news_categories.id
AND news.date_online < NOW()
AND news.activated ='t'
ORDER BY
news.date_online DESC
У меня клиент MySQL версии 5.0.96
Когда я запускаю вызов EXPLAIN EXTENDED с этим запросом, я получаю следующий результат:
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE news ref category_id,date_online,activated activated 1 const 43072 Using where; Using filesort 1 SIMPLE news_categories eq_ref PRIMARY,id PRIMARY 4 news_category_id 1
У меня есть индекс по следующим столбцам news_id (первичный ключ) date_online активирован category_id
Когда я смотрю на результат EXPLAIN EXTENDED, я вижу USING_WHERE; ИСПОЛЬЗОВАНИЕ FILESORT. Я знаю, что они оба плохие, но не знаю, как это исправить.