mysql对索引的选择简述

概述

在业务中经常会优化一些mysql的慢查询,通常都是使用explain去查看分析,检查扫描行数和索引的命中情况;

但是在具体索引的选择上,explain结果中并没有直接展示出来;

此时可以开启mysql的追踪优化器Trace功能;

mysql的追踪优化器Trace

sql 复制代码
SET session optimizer_trace="enabled=on"; -- 在当前session中打开追踪优化器
 
SET session optimizer_trace_max_mem_size = 1048576; -- 设置为1MB,根据实际情况调整

-- 和业务查询一起执行,查询mysql的索引比较
select * from INFORMATION_SCHEMA.OPTIMIZER_TRACE;

截图中可以看到mysql在比较最合适的索引的依据

相关推荐
無a伟20 分钟前
redis采用的单线程模型,为什么这么快?
数据库·redis·缓存
muddjsv42 分钟前
SQLite与MySQL/PostgreSQL本质区别:运行模型、并发、部署、权限全方位对比
mysql·postgresql·sqlite
xlq223221 小时前
高并发服务器day5
java·服务器·数据库
William_cl2 小时前
WinForms EF Core 上下文频繁释放引发的异常排查与规范方案(MES 项目实录)
服务器·数据库·oracle
许彰午2 小时前
01-Oracle 19c静默安装全流程
数据库·oracle
许彰午2 小时前
02-Oracle连接池配置实战
数据库·oracle
Flandern11112 小时前
HTTPS(TLS 1.3)完整流程
数据库·网络协议·计算机网络·https
Bonnie_12152 小时前
Navicat Premium连接sql server数据库
数据库
其实防守也摸鱼3 小时前
前端应用的离线暂停更新策略:构建稳定可靠的渐进式部署方案
服务器·前端·数据库·学习·ai·命令行·linux系统
Leighteen3 小时前
ORDER BY + LIMIT 的坑:为什么加了 `LIMIT` 结果顺序还乱
数据库