在mysql中,在具有数千条记录的表上编写带有WHERE条件的查询,会降低服务器或程序的速度吗?
例如:SELECT * FROM table_name WHERE id = 5;
最佳答案
“默认”情况下会。
一个异常(exception)是当您在一列上有索引时。通常,名为id
的列将是主键——它会生成索引。在这种情况下,查询会非常快。
另一个异常(exception)是如果表是按 id
分区的。那么只会读取一个分区。
并且,如果查询有限制 1
,则查询将读取表,直到找到匹配项,然后停止。
因此,where
子句并不总是扫描整个表。
关于mysql - WHERE条件是否扫描整个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37725949/