在 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
要么是索引的,要么是 bool 值。
最佳答案
一般来说,您的查询越具体越好,但就访问时间而言,它仍然必须梳理索引才能找到给定的记录。较小的结果集仅意味着返回的命中数较少,因此您会看到速度提高。
我经常使用 EXPLAIN 查询来准确查看给定查询在通过 SQL 引擎时发生了什么。 MS SQL 有一个方便的查询诊断功能。
EXPLAIN SELECT `someCol` FROM someTable;
关于mysql - 使 MySQL 选择/更新更具体是否使其更快/提供更好的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16863707/