MySQL 8.0新特性专栏目录
《MySQL开发规范》过时了,视图查询性能提升了一万倍
你真的会用EXPLAIN么,SQL性能优化王者晋级之路
索引三剑客之降序索引和不可见索引
千呼万唤始出来,MySQL 8.0索引三剑客之函数索引
双重密码,MySQL 8.0创新特性
sql_mode兼容性,MySQL 8.0 升级踩过的坑
警惕参数变化,MySQL 8.0 升级避免再次踩坑
你真的会用EXPLAIN么,SQL性能优化王者晋级之路
前言
MySQL作为全球最流行的数据库,相关从业者不计其数,可以说十个码农里至少有九个使用过MySQL。MySQL的开发人员或者DBA,经常使用EXPLAIN语句来查看SQL的执行计划。EXPLAIN的解读文章多如牛毛,每个开发人员对EXPLAIN结果都有自己的理解。然而,你真的会使用EXPLAIN吗?
1. 青铜选手使用EXPLAIN - EXPLAIN
我们以sysbench的测试表sbtest1
上的查询为例,来看看大家都是怎么使用EXPLAIN的。
# 测试表
Create Table: CREATE TABLE `sbtest1` (
`id` int NOT NULL AUTO_INCREMENT,
`k` int NOT NULL DEFAULT '0',
`c` char(120) NOT NULL DEFAULT '',
`pad` char(60) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `idx_k` (`k`) /*!80000 INVISIBLE */,
KEY `idx_c`(`c`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1
表sbtest1
上有两个二级索引