当前位置: 首页 > news >正文

MySQL索引优化最佳实践


 

目录

1 联合索引使用姿势

2 不在查询条件索引列中做任何操作(计算,函数,类型转换)

3 尽量使用覆盖索引,减少select * 语句,避免回表查询

4 索引字段避免使用!=,<>,not in ,not exists,is null ,is not null查询,否则会走全表扫描

5 使用<,>,<=,>=时MySQL会进行成本计算评估是否使用索引

6 like查询时遵循最左前缀查询

7 尽量避免使用in或者or查询,MySQl会进行成本计算决定是否使用索引

8 范围查询优化,大范围拆分小范围


注意

以下结论不一定完全正确

因为MySQL执行进行成本计算选择那一条执行途径

影响成本计算因素表结构数据

因此需要具体情况结合explain进行分析确定优化途径

1 联合索引使用姿势
  • 在使用联合索引尽可能使用更多索引字段

  • 遵循最左前缀法则查询条件联合索引最左列开始不跳过索引中

  • 使用联合索引避免左边索引字段进行范围查询

2 不在查询条件索引列中做任何操作(计算,函数,类型转换)
  • left函数导致索引失效

  • 隐式类型转换导致索引失效

3 尽量使用覆盖索引,减少select * 语句,避免回表查询

4 索引字段避免使用!=,<>,not in ,not exists,is null ,is not null查询,否则会走全表扫描

5 使用<,>,<=,>=时MySQL会进行成本计算评估是否使用索引
6 like查询时遵循最左前缀查询
  • like字段左边存在%导致索引失效

  • 使用覆盖索引左like可以索引

7 尽量避免使用in或者or查询,MySQl会进行成本计算决定是否使用索引

8 范围查询优化,大范围拆分小范围

相关文章:

  • Python 3.8 Requests 爬虫教程(2025最新版)
  • 递归进阶(用递归改造循环11~20)(1082、1265、1395、1083、1066、1782、1783、1784、1008、1224)
  • 树的深度优先(DFS)和广度优先(BFS)算法
  • Nginx相关漏洞解析
  • Redis 版本演进及主要新特性
  • 常见框架漏洞攻略-Spring篇
  • 拓扑排序(算法基础)
  • 针对信息化软硬件设备:常用询价网站是否够用
  • 【Unity3D脚本与系统设计6】鼠标触摸超时待机实现
  • 全排列 | 下一个排列
  • CSS3学习教程,从入门到精通,CSS3 浮动与清除浮动语法知识点及案例代码(14)
  • 计算机二级:文件操作
  • C语言部分代码
  • 深入理解指针(2)(C语言版)
  • MySQL基本函数
  • UE4学习笔记 FPS游戏制作20 重写机器人和玩家死亡 切换相机和模型
  • 【leetcode hot 100 739】每日温度
  • 关系图:赋能数据可视化的动态扩展
  • 微服务中的服务发现与注册中心
  • python之网络编程
  • 赣州市网站建设公司/百度客服在哪里找
  • 手机网站开发解决方案/免费建站网站大全
  • 网站淘宝客怎么做的/智慧软文网
  • 电商网站设计公司立找亿企邦/百度移动端模拟点击排名
  • 申请建设网站的请示/百度网址大全怎么设为主页
  • 做百度网站/公司网站域名续费一年多少钱