首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql等于或大于(小于)性能差异

问Mysql等于或大于(小于)性能差异
EN

Stack Overflow用户
提问于 2011-01-21 07:42:41
回答 4查看 5K关注 0票数 4

当在where子句中使用等于或大于时,Mysql对大数据集的性能是否存在差异。

出于相同的目的,我可以运行以下两个查询。

select * from My_Table where MY_Field > 100; // 100是旧值

或

代码语言:javascript
复制
select * from MY_Table where MY_Field = 101; 

如果大于100则为101,这是My_Field的已知值。

有什么建议吗?

EN

回答 4

Stack Overflow用户

发布于 2011-01-21 07:54:03

如果MY_Field被索引所覆盖,那么在索引中搜索值的差异并不大。这是正确的,直到结果集大约是表中总行数的30%。

但是,对于在索引中找到的每个记录,mysql需要在数据文件上执行查找以找到适当的行(因为您有SELECT *)。

因此-在您的情况下,如果您知道特定的字段值,那么使用=一定会更好。

票数 3
EN

Stack Overflow用户

发布于 2011-01-21 07:59:46

取决于此特定列上的索引类型: BTREE在搜索范围时很好,散列在搜索等式时很好

票数 0
EN

Stack Overflow用户

发布于 2011-01-21 12:13:56

如果您知道只会使用LIMIT 1读取一个结果,则可以优化查询

代码语言:javascript
复制
select * from MY_Table where MY_Field = 101 LIMIT 1;

在执行时,如果找到单行匹配结果,mysql将停止执行,哪一个更好

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4753955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档