双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

where后面的条件的先后顺序是否影响执行的效率?

hudan hudan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
比如表student
id name sex age
1 tom 1 23
2 jack 1 15
3 alice 0 28
4 jodan 1 45

◆1
select * from student where sex=1 and age>30
和
select * from student where age>30 and sex=1

是不是后者的效率高一些,是不是这样来执行的:
(方法1)
先读第1行,比较sex,发现相等, 再比较age,不符合, 比较2次
再读第2行,比较sex,发现相等, 再比较age,不符合, 比较2次
再读第3行,比较sex,发现不相等,不再比较age,不符合,比较1次
再读第4行,比较sex,发现相等, 再比较age,符合, 比较2次
总共比较了7次

(方法2)
先读第1行,比较age,不符合,不再比较sex 比较1次
再读第2行,比较age,不符合,不再比较sex 比较1次
再读第3行,比较age,不符合,不再比较sex 比较1次
再读第4行,比较age,符合, 比较sex 符合 比较2次
总共比较了5次

◆2 还有一个问题:
如果把sex的数据类型设置成varchar(2)
select * from student where sex='女生' -字符型
和
select * from student where sex=0 --原来的逻辑型
哪个效率好些?

◆3 还有一个问题:
如果都是字符型
select * from student where sex='女生'
select * from student where sex like '女生'
select * from student where sex like '女%'
select * from student where left(sex,1)='女'
select * from student where substring(sex,0,1)='女'
上面这几条的效率顺序如何?

很需要澄清的几个基本概念,望高人指点!!!




...全文

相关推荐

MySQL left join操作中on和where放置条件的区别介绍

优先级 两者放置相同条件,之所以可能会导致结果集不同,就是因为优先级。on的优先级是高于where的。 首先明确两个概念: LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在left join下,两者的区别: on是在生成临时表的时候使用的条件,不管on的条件是否起到作用,都会返回左表 (table_name1) 的行。 where则是在生成临时表之后使用的条件,此时已经不管是否使

weixin_38519060

MySQL查询条件中放置on和where的区别分析

主要给大家介绍了关于MySQL查询条件中放置on和where的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

weixin_38737144

mybatis-plus分页传入参数后sql where条件没有limit分页信息操作

折腾了差不多两个小时,各种方法尝试,后来想想应该是where过滤后的数据量没有达到默认一页规定的数量所以干脆where就不显示limit信息了,试了一下还真是。。。这作者还真是把程序做的足够智能,可是这个智能也让我白白花掉了两个小时。。。还是自己太笨了…… 但是奇怪的是,如果我不设置QueryWrapper参数,where后面的分页限制又是可以出来的。百思不得其解作者的想法。。。 具体看代码: @Override public PageUtils queryPage(Map params) { IPage page = this

weixin_38645208

MySQL 联合索引与Where子句的优化 提高数据库运行效率

网站系统上线至今,数据量已经不知不觉上到500M,近8W记录了。涉及数据库操作的基本都是变得很慢了,这篇文章主要是说明配置并不是数据库操作慢的主要原因

weixin_38574132

where条件顺序不同、性能不同示例探讨

where条件顺序不同,性能不同,这个建议在Oracle11G版本还合适吗,想提高性能的的朋友可以参考下哈

weixin_38592643
评论 19
收藏 已收藏
分享
返回顶部
hudan
疑难问题 22,298 成员 121,727 内容