在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
要么是索引的,要么是布尔值。
答案 0 :(得分:2)
一般来说,查询越具体越好,但就访问时间而言,仍需要梳理索引以查找给定记录。较小的结果集意味着返回的命中较少,因此您可以看到速度增加。
我经常使用EXPLAIN查询来查看给定查询在通过SQL引擎时发生的确切情况。 MS SQL具有方便的查询诊断功能。
EXPLAIN SELECT `someCol` FROM someTable;