実行速度が非常に遅い次のクエリがあります(ほぼ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を使用しています
このクエリを使用してEXPLAINEXTENDED呼び出しを実行すると、次の結果になります。
idselect_typeテーブルタイプpossible_keyskeykey_len ref rows Extra 1シンプルなニュースrefcategory_id、date_online、アクティブ化アクティブ化1const43072使用場所; 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の使用。どちらも悪いことは知っていますが、これを修正する方法がわかりません。