索引字段上不要使用不等,索引字段上使用(!= 或者 < >)判断时,会导致索引失效而转向全表扫描 。
应尽量避免在 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性能优化的技巧,希望大家能够跟着老刘的文章,好好捋捋思路,争取能够用自己的话把这些知识点讲述出来!
尽管当前水平可能不及各位大佬,但老刘会努力变得更加优秀,让各位小伙伴自学从此不求人!
推荐阅读
-
中铁电气化局三公司|党建共建铸精品 绿色贵南党旗红
-
萱读星座|3星座有伯乐相助,一切难题都迎刃而解,下半年一帆风顺,6月下旬
-
lpl|“大威天龙告别S10”就在今天,LPL最励志黑马被淘汰,3名选手将被迫离队
-
国足|不愧国足最大希望:21岁中超当红新星直言从不碰方便面!
-
「地铁」修地铁最慢的3大城市,都是省会却只有1条线,当地大学
-
-
-
「高手们」钓鱼高手们在夏天都是怎么钓鱼的?我用了4盒烟,问出4个好方法
-
椰果,椰肉,椰子水,椰汁,椰浆、椰蓉,到底有什么区别 椰浆和椰汁有什么区别
-
『标致508』最被低估的中型车,可变悬挂+8速,底盘比3系稳定,刚上市就降4万
-
月下独酌|越喜欢说这3句话,难怪人缘差,情商越低的人
-
「孙铭徽」浙江广厦将成CBA复赛首秀主角,孙铭徽登人民日报海报
-
怪咖搞笑■幽默笑话:经理 贵宾房唱歌的妹子们都跑掉了,原创
-
-
北青网综合|南宁夫妻二人在家中遇害,嫌疑人在柬埔寨落网
-
飞行的小猪|亚洲蹲之后再看瑜伽蹲,孙俪、万茜强势代言,你能轻松完成吗?
-
-
小李阅天下|推荐给40多岁的女性!时尚秋季运动鞋协调
-
「育儿老尹」原来是一种血脂,控制它得这么做,心脑血管”元凶“被发现
-
古代的坟、墓、冢、陵究竟有什么区别?作为炎黄子孙要了解