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

Mysql常见问题汇总(3)-索引/查询优化篇

1. Group by 的底层实现(松散/紧凑索引扫描)

  • 如果有索引时
    • 松散索引扫描索引字段连续,有序时,且没有被范围查找截断(整个表做group by),这时候采用的方式叫做松散索引扫描,比如一组相同元素11223344,mysql直接跳着扫描索引,遇到不同值就分组,效率最高
    • 紧凑索引扫描:当索引有序,但是必须全扫满足条件的索引(出现了范围查找,比如b> 10 ,10 这个位置可能在page directory中的组中间,组被截断了,就不能通过二分这样跳着读了)。扫描索引中符合条件的整个连续区间,顺序遍历,利用索引有序分组,不跳过数据
  • 如果没有索引,只能通过 创建临时表 + 排序的方式实现group by,extra中会显示Using temporary, Using filesort

2 慢查询如何优化

首先要明白导致慢查询的原因: 1.是查询语句没有命中索引 2. 还是加载了不需要的数据列(select *) 3. 还是数据量太大

三个方向:

  • 首先分析语句,看看是否加载了额外数据,重写语句
  • 分析语句的执行计划,看看索引的使用情况,看看实际扫描行数和过滤后返回的行数
  • 如果语句已经无法优化,最终考虑是否可以分库分表

3. 执行计划

执行计划中的参数

  • select_Type:表示查询中每个select子句的类型
    • SIMPLE:此查询没有union或子查询
    • PRIMARY:表示查询是最外层查询(包括子查询)
    • SUBQUERY:子查询
  • table:查询的表
  • type:索引优化中最重要的字段
    • system:系统表查询,只有1行
    • const:主键/唯一索引 上的等值查询,匹配一行数据
    • eq_ref:表关联时的等值查找,且关联字段是主键或者唯一索引
    • ref:普通索引 + 等值查找,返回所有匹配值
    • range :索引树中做范围查找,通常是(>,<,between)
    • index:遍历整颗索引树,比全表扫描好
    • ALL: 全表扫描,效率最低
  • Extra:格外信息,比如
    • Using index: 使用了索引覆盖
    • Using index condition:使用了索引下推
    • Using where: 服务层对存储引擎层返回的结果再做where过滤
    • Using filesort:没有用到索引的顺序,需要服务层自己排序
    • Using temporary:使用了临时表,常见于union/Order by,没有合适索引,性能差
http://www.jsqmd.com/news/733023/

相关文章:

  • Visual C++运行库:Windows程序的“隐形桥梁“如何影响你的日常使用?
  • 无与不的辩证法
  • 体验 Taotoken 多模型聚合带来的稳定与低延迟响应
  • 轻松搞定Mac飞秋安装:告别配置困扰的智能方案
  • Java程序员72小时Python实战手册
  • RT809H编程器提取固件翻车实录:从识别失败到成功读取,我踩了哪些坑?
  • springboot+nodejs微信小程序的睡眠失眠助眠音乐系统
  • 仅限首批通过MCP 2026认证的23家企业的内部文档节选(含真实权限爆炸图谱与自动收敛算法伪代码)
  • 手把手教你为STM32H7自制飞控板移植PX4固件(基于NuttX系统)
  • 二层交换机、三层交换机和路由器到底有啥不一样?用大白话给你讲透
  • PowerToys中文优化指南:告别英文界面,让Windows效率提升200%
  • 别再死记硬背卡诺图了!用这个十字路口红绿灯电路,带你真正搞懂组合逻辑设计
  • 从零构建MCP 2026集成中枢:用1个OpenAPI 3.1 Schema驱动6大系统联动,附可运行Terraform IaC模板
  • Moonlight-PC:揭秘Java跨平台游戏串流技术架构的7大核心设计
  • 深入理解BiRefNet:高分辨率二值化图像分割的核心架构与实践指南
  • 测了6款AI图文笔记工具,我发现90%都在浪费时间
  • langgraph学习笔记
  • 别再被HDF文件搞懵了!手把手教你用MRT批量处理MODIS NDVI数据(附避坑指南)
  • Python量化交易数据获取终极指南:efinance深度解析与实践
  • 保姆级教程:用Python修复GitHub上的NIQE代码,批量计算图片质量指标
  • 2026年5月六西格玛黑带报考条件及高效备考指南推荐 - 众智商学院课程中心
  • 别再死记公式了!用PyTorch手写SENet和CBAM,5分钟搞懂通道与空间注意力
  • 从‘乒乓球染色’到流量分配:一个比喻带你彻底搞懂AB测试中的‘正交’与‘互斥’
  • 统一认证中心CAS登录流程深度解析
  • 从CTF靶场到真实IoT:用Pikachu和CGfsb案例,手把手理解格式化字符串漏洞的实战利用
  • 使用 Taotoken 后 API 调用延迟与账单清晰度实际体验分享
  • 一文搞懂:Spring与Spring Boot的区别——为什么现在都用Spring Boot?
  • OPC到底该怎么启动?3种模式,看完你就懂了
  • Unity游戏上架Google Play必看:AAB+PAD资源加载性能实测与内存优化方案
  • 2026年艺术漆公司实力排行,艺术漆代理/艺术漆加盟/艺术漆代理加盟艺术涂料/艺术漆招商 - 品牌策略师