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

标签 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 要么是索引的,要么是 bool 值。

最佳答案

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

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

EXPLAIN SELECT `someCol` FROM someTable;

关于mysql - 使 MySQL 选择/更新更具体是否使其更快/提供更好的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16863707/

相关文章:

mysql - 在终端上使用 Wireshark 同时显示 mysql 字节响应和查询

mysql - Rails从mysql解析日期

sql - 拆分字符串和数字列

sql - 如何将数据从 Redshift 卸载到 S3?

mysql - Web2py - mysql - 如何DAL?

mysql - 如何在 MySQL 中创建一个名为 "order"的表?

sql - Oracle SQL : Query results from previous X isoweeks () (where X might be > 52)

c++ - 如何提高迭代精度?

database - 强规范化关系数据库效率不高?

javascript - 如何将 jQuery 代码绑定(bind)到某些页面上?