mysql - WHERE条件是否扫描整个表?

标签 mysql sql

在mysql中,在具有数千条记录的表上编写带有WHERE条件的查询,会降低服务器或程序的速度吗?

例如:SELECT * FROM table_name WHERE id = 5;

最佳答案

“默认”情况下会。

一个异常(exception)是当您在一列上有索引时。通常,名为id 的列将是主键——它会生成索引。在这种情况下,查询会非常快。

另一个异常(exception)是如果表是按 id 分区的。那么只会读取一个分区。

并且,如果查询有限制 1,则查询将读取表,直到找到匹配项,然后停止。

因此,where 子句并不总是扫描整个表。

关于mysql - WHERE条件是否扫描整个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37725949/

相关文章:

php - 优化 jQuery 速度

mysql - 在 mysql 中使用事件调度程序时,它只工作一次

java - 如何在参数化选择查询 where IN 子句中传递逗号分隔的 UUID

sql - sql中多对多关系的外键

c# - 在不访问 SQL Server Profiler 的情况下分析 ADO.NET 语句

php - 多个 MSQL 表和外键

MYSQL 有 with Or 语句

php - 在Mysql命令中使用时的字体颜色问题

php - 将 MySQL 链接传递给类方法

sql - 计算 varchar 数组中不同元素的数量 Postgres