データベース サーバーに mysql スロー クエリ ログをセットアップし、ロング クエリ時間を 5 に設定しました。ログと、ミリ秒しかかからないログ クエリを確認しました。その理由を知っている人はいますか?ログの一部を次に示します。
最後のクエリは、最適化されているわけではありません。450000 行を調べたと書かれているので、ログに表示されても驚かないでしょう。ただし、クエリ時間は 0.2 秒しかかからなかったとのことです。遅いクエリログには、クエリの実行時間だけではありませんか?
# Query_time: 0.000525 Lock_time: 0.000151 Rows_sent: 1 Rows_examined: 115
SET timestamp=1349393722;
SELECT `we_members`.*, `we_referrals`.`code` as referral_code
FROM (`we_members`)
LEFT JOIN `we_referrals` ON `we_referrals`.`m_id` = `we_members`.`id`
WHERE `we_members`.`facebook_id` = '100'
LIMIT 1;
# Query_time: 0.000748 Lock_time: 0.000104 Rows_sent: 3 Rows_examined: 691
SET timestamp=1349393722;
select distinct(m_id), m.first_name, m.facebook_id, m.photo_url from
we_connections f
left join we_members m on m.id = f.m_id
where ( (f.friend_id = 75 or f.m_id = 75 and m.id != 75))
and m.id >0
and m.id != 75
order by m_id;
# Query_time: 0.259535 Lock_time: 0.000098 Rows_sent: 16 Rows_examined: 455919
SET timestamp=1349393722;
select distinct(m_id), m.first_name, m.facebook_id, m.photo_url from
we_connections f
left join we_members m on m.id = f.m_id
where (f.friend_id IN (select friend_id from we_connections f where f.m_id = 75) or (f.friend_id = 75 or f.m_id = 75 and m.id != 75))
and m.id >0
and m.id != 75
order by m_id;