クエリを最適化しようとしていますが、「EXPLAIN」に到達するとすべてうまく見えますが、それでも「log_queries_not_using_index」に表示されます。
クエリは次のとおりです。
SELECT t1.id_id,t1.change_id,t1.like_id,t1.dislike_id,t1.user_id,t1.from_id,t1.date_id,t1.type_id,t1.photo_id,t1.mobile_id,t1.mobiletype_id,t1.linked_id
FROM recent AS t1
LEFT JOIN users AS t2 ON t1.user_id = t2.id_id
WHERE t2.active_id=1 AND t1.postedacommenton_id='0' AND t1.type_id!='Friends'
ORDER BY t1.id_id DESC LIMIT 35;
したがって、「ウォールポスト」データのように取得し、USERSテーブルに参加して、ユーザーがまだアクティブユーザー(番号1)であり、他の2つの小さな「AND」であることを確認しました。
phpmyadminのEXPLAINでこれを実行すると、次のように表示されます
id | select_type | テーブル| タイプ| possible_keys | キー| key_len | ref | 行| 追加 1 | シンプル| t1 | インデックス| user_id | プライマリー| 4 | NULL | 35 | 場所を使用する 1 | シンプル| t2 | eq_ref | PRIMARY、active_id | プライマリー| 4 | hnet_user_info.t1.user_id | 1 | 場所を使用する
これは、t1クエリが「WHERE」を使用して35行を検出し、t2クエリが「WHERE」を使用して1行(ユーザー)を検出したことを示しています。
そのため、log_queries_not_using_indexレポートに表示される理由がわかりません。
任意のヒント?必要に応じて、さらに情報を投稿できます。