我有以下运行非常慢的查询(几乎 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 激活 1 const 43072 使用 where;使用文件排序 1 SIMPLE news_categories eq_ref PRIMARY,id PRIMARY 4 news_category_id 1
我在以下列有索引 news_id(主键) date_online 已激活 category_id
当我查看 EXPLAIN EXTENDED 结果时,我看到了 USING_WHERE; 使用文件排序。我知道他们两个都很糟糕,但我不知道如何解决这个问题。