我在让MySQL在多对多查询中使用索引时遇到问题,我已粘贴下面的相关信息。
EXPLAIN SELECT *
FROM interviews
JOIN interview_category_links ON interviews.id = interview_category_links.inter_id
JOIN categories ON interview_category_links.cat_id = categories.id
WHERE categories.category_safe = 'news'
ORDER BY date DESC
LIMIT 15
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE categories ALL PRIMARY,id NULL NULL NULL 16 Using where; Using temporary; Using filesort
1 SIMPLE interview_category_links ref inter_id,inter_id_2,cat_id cat_id 4 devel.categories.id 893
1 SIMPLE interviews eq_ref PRIMARY PRIMARY 4 devel.interview_category_links.in... 1
在类别表上我有索引(id,cat_id),在interview_category_links表上,我同时拥有(cat_id,inter_id)和单个索引(cat_id)和(inter_id)
答案 0 :(得分:1)
你有面试指数(id)吗?
如果您删除了“按日期排序desc”,该怎么办?查询运行得更快吗?如果是这样,您可能想要为该字段添加索引(我假设,这是访谈表中的一列)。