MySQL正在做全表筛选

标签 mysql join indexing explain

我试图找出为什么以下 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 列是主键。

EXPLAINPRIMARY 列为类别表的可能键,但它并未使用它。

谢谢。

最佳答案

很简单。您的查询将从表中选择所有数据。如果添加 WHERE 语句,一切都会好起来的。

关于MySQL正在做全表筛选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5144535/

相关文章:

sql - mySql join - 来自同一张表的多条记录

oracle - 如何向 Hibernate @ManyToMany 关系添加 where 子句?

企业版Mysql社区版

mysql - 使用 memcached 和 mysql 搜索查询的最佳实践?

MySQL COUNT 与 group by 或 distinct

python - 删除多个字符并加入 pandas 列

Solr 索引花费的时间太长

php - Laravel 十进制列索引

C# Lucene 获取所有索引

mysql - 如何在 mysql 中使用 'where' 写入 'am' 条件。