使MySQL选择/更新更具体是否使其更快/为其提供更好的性能

时间:2013-05-31 18:37:04

标签: mysql sql performance

在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要么是索引的,要么是布尔值。

1 个答案:

答案 0 :(得分:2)

一般来说,查询越具体越好,但就访问时间而言,仍需要梳理索引以查找给定记录。较小的结果集意味着返回的命中较少,因此您可以看到速度增加。

我经常使用EXPLAIN查询来查看给定查询在通过SQL引擎时发生的确切情况。 MS SQL具有方便的查询诊断功能。

EXPLAIN SELECT `someCol` FROM someTable;