1

在 MySQL 或 SQL 中,是否使选择或更新查询更具体会使其更快?

我的意思是,这个查询是:

UPDATE `table` SET column = 'Hi Mom!' WHERE `id` = 123 AND `grouping_id` = 456 AND `other_column` = 0;

...比这个查询更快:

UPDATE `table` SET column = 'Hi Mom!' WHERE `id` = 123;

我一直在破坏大型数据库上的测试查询,我可以看到使查询更具体会使 MySQL 检查更少的行。然而,它并不一定看起来更快或处理器密集度更低。有什么想法吗?


注意:我会使用大多数列来缩小结果范围,在这种情况下group_id,要么是索引的,要么是布尔值。

4

1 回答 1

2

一般来说,您的查询越具体越好,但就访问时间而言,它仍然必须梳理索引才能找到给定的记录。较小的结果集仅意味着返回的点击次数较少,因此您会看到速度提高。

我经常使用 EXPLAIN 查询来准确查看给定查询在通过 SQL 引擎时发生了什么。MS SQL 有一个方便的查询诊断功能。

EXPLAIN SELECT `someCol` FROM someTable;
于 2013-05-31T18:40:58.610 回答