索引字段上不要使用不等,索引字段上使用(!= 或者 < >)判断时,会导致索引失效而转向全表扫描 。
应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描 。
例如: select * from t where num=10 or num=20
我们可以这样查询:select * from t where num=10 union all select * from t where num=20
应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描 。
例如:select * from t where num/2=100
我们应该改为: select * from t where num=100*2
应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描 。
例如:select * from t where substring(name,1,3)='abc' -- name以abc开头的id
我们应该改为: select * from t where name like 'abc%'
不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引 。
很多时候用 exists 代替 in 是一个好的选择 。
例如:select num from a where num in(select num from b)
我们应该这样替换:select num from a where exists(select 1 from b where num=a.num)
总结本文作为大数据开发指南MySQL的最后一篇简洁明练的讲述了一些SQL性能优化的技巧,希望大家能够跟着老刘的文章,好好捋捋思路,争取能够用自己的话把这些知识点讲述出来!
尽管当前水平可能不及各位大佬,但老刘会努力变得更加优秀,让各位小伙伴自学从此不求人!
推荐阅读
-
东方网|安徽合肥:上海消防全力做好安置点火灾防控及消杀防疫
-
『脉络文史馆』古人是怎么把稻谷去壳变成米的?一粒粒的剥吗?,古代没有磨米机
-
-
孙小果“复活记”:死刑不被核准改死缓,后经再审改判20年
-
励志图图|不仅情商显得高,还能得到领导的欣赏,喜欢说这三句话的下属
-
沛白说体育|王一博,不要刻意的嘲讽low,国货和小众品牌也不输奢侈品的
-
-
公司|朗科科技:大股东邓国顺质押约620万股及解除质押614万股
-
十年后,广西GDP能不能到全国第十三名水平呢?看完心里有底了
-
-
-
光明网|鞠婧祎宋威龙毕雯珺演绎暖心结局,《漂亮书生》圆满收官消暑一夏
-
[执勤]放下母亲病逝的悲痛,新警察坚持上抗击疫情战场
-
体育云说|下赛季他将得到多大的合同?,范弗利特季后赛表现超神
-
陈哲远|陈哲远沈月《我的反派男友》与《炽道》相比,哪一部剧更好看?
-
「建房」建房基础怎么选? 农村建房基础不牢, 几十万就打水漂了
-
装修材料 家里有很多蚂蚁怎么办?家里蚂蚁出现的原因是什么?
-
家居设计分享|一家三口的精致小家:168平全屋简约风,碰撞出黑与白的惊艳
-
苹果|配置大升级!苹果新平板iPad 10外形首秀:摄像头突起感人
-
小院食光@吉林丈母娘,海南丈母娘,江西丈母娘做的特色菜,差距在哪