質問があります:
SELECT last_name, uid, full_name, user_name, email_address, user_photo,
count(checkin_id) as c_c, max(created_at) as mdi
FROM activity
INNER JOIN users on checkin.user_id = users.uid
INNER JOIN friends on (friends.friend_id = checkin.user_id)
WHERE friends.user_id = '1' and item_id = '2025' and
created_at >= DATE_SUB('2013-07-10 03:16:24', INTERVAL 30 DAY) and
venue_id = '5622' and is_approved = 1
GROUP by activity.user_id
ORDER by c_c desc LIMIT 30;
このクエリの目的は、過去 30 日間にあなたと同じアクティビティを行ったすべての友達を同じアイテムに取得することです。
checkin
Explain を実行すると、次のインデックスについて、テーブルで index_merge が取得されます。
venue_id_2 -> venue_id
item_id -> item_id
クエリ時間は次のとおりです。
# Query_time: 6.710844 Lock_time: 0.033860 Rows_sent: 0 Rows_examined: 16
16行しかないものに6.7秒かかる理由がわかりません。何か案は?ここのインデックスは何ですか?