0

質問があります:

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 日間にあなたと同じアクティビティを行ったすべての友達を同じアイテムに取得することです。

checkinExplain を実行すると、次のインデックスについて、テーブルで 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秒かかる理由がわかりません。何か案は?ここのインデックスは何ですか?

4

0 に答える 0