mysql索引优化

 

 

1.联合索引,注意最左匹配原则:必须按照从左到右的顺序匹配,MySQL会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。

2.查询记录的时候,少使用’*’,尽量去利用索引覆盖,可以减少回表操作,提升效率。

3.有些查询可以采用联合索引,进而使用到索引下推,也可以减少回表操作,提升效率。

4.禁止对索引字段使用函数、运算符操作,这样将会使索引失效。

5.字符串字段和数字比较的时候会使索引无效。

6.模糊查询’%值%'会使索引无效,变为全表扫描,但是’值%'这种可以有效利用索引。

7.排序中尽量使用到索引字段,这样可以减少排序,提升查询效率。

————————————————

 

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        

原文链接:https://blog.csdn.net/weixin_46370070/article/details/108051195

 

 

1.对于连续单调的字段用limit时,可以采用子查询的方式来提升在大数据量下的分页性能

    2.对于不连续单调的字段用limit时,可以采用正序查询和倒序查询,或者做连续单调映射表的方式来提升大数据量下的分页性能

    3.当order by和limit混合使用时,可能会出现排序结果和预期不一致,这个时候需要按照官方文档的说明,在order by的字段中加上一个唯一字段。

    4.order by的字段无索引,必出现filesort

    5.order by的字段有索引且走索引覆盖才不会出现filesort

    6.where 和 order by一起使用时,where的字段和order by的字段都建立了索引,且不是联合索引,会导致order by的索引失效,出现filesort

    7.where 和 order by一起使用时,where的字段和order by的字段应该建立了索引,且索引顺序和where 和 order by的顺序一致,且select的字段不包含不在索引中的字段,这样的性能是最优的

 

————————————————

 

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        

原文链接:https://blog.csdn.net/Fanzongshen/article/details/121958911

 

https://blog.csdn.net/Fanzongshen/article/details/121958911?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-2-121958911-blog-51849559.235%5Ev43%5Epc_blog_bottom_relevance_base4&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-2-121958911-blog-51849559.235%5Ev43%5Epc_blog_bottom_relevance_base4&utm_relevant_index=5

posted @   大米粒汪汪叫  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示