我试图找出为什么以下 SQL 的类别 c 表的类型为 ALL。
EXPLAIN SELECT
t.todo_id,
t.name todo_name,
c.name category_name
FROM
todos t,
categories c
WHERE t.category_id = c.category_id
todos
表在 category_id
上有一个索引,todo_id
是主键。
类别表中的 category_id
列是主键。
EXPLAIN
将 PRIMARY
列为类别表的可能键,但它并未使用它。
谢谢。
最佳答案
很简单。您的查询将从表中选择所有数据。如果添加 WHERE 语句,一切都会好起来的。
关于MySQL正在做全表筛选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5144535/