在mysql中,在具有数千条记录的表上编写带有WHERE条件的查询,是否会降低服务器或程序的速度?
例如:SELECT * FROM table_name WHERE id = 5;
答案 0 :(得分:2)
"默认"它会。
一个例外是当列上有索引时。通常,名为id
的列将是主键 - 它会生成索引。在这种情况下,查询会非常快。
另一个例外是如果表由id
分区。然后只会读取一个分区。
并且,如果查询有limit 1
,那么查询将读取表,直到找到匹配为止,然后它将停止。
因此,where
子句并不总是扫描整个表。