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在比较最合适的索引的依据

相关推荐
墨白曦煜23 分钟前
硬核图解:MySQL 是如何利用 MVCC + 锁实现“可重复读”的?
数据库·mysql
DarkAthena1 小时前
【DuckDB】探索函数调用新范式:点操作符链式调用
数据库·sql·duckdb
自己的九又四分之三站台1 小时前
PG GraphQL详细介绍与基本使用
数据库·sql·graphql
大模型RAG和Agent技术实践1 小时前
SQL Agent从“黑盒“到“全透明“:基于LangGraph+Phoenix的可观测性实战指南
数据库·人工智能·sql·agent·langgraph
rchmin1 小时前
Redis BitMap介绍及使用场景示例
数据库·redis·缓存
Dxy12393102161 小时前
MySQL 日志全解析
数据库·mysql
思成Codes1 小时前
MySQL——最左前缀法则
数据库·mysql
是店小二呀1 小时前
【MySQL】MySQL 从安装到理解
android·mysql·adb
杨云龙UP2 小时前
Windows环境下安装SQL Server 2016企业版+SP3补丁+SSMS连接操作手册_20251230
运维·服务器·数据库·sql·算法·sqlserver·哈希算法
雪碧聊技术2 小时前
基于Redis的分布式锁
数据库·redis·分布式