mysql优化之Explain
Explain工具介绍
使用Explain关键字在模拟优化器执行SQL语句,分析你的查询语句或结构的性能瓶颈
就是在select语句之前加个explain关键字,Mysql会在查询上设置一个标记,执行查询语句会返回执行计划的信息,而不是返回这个sql的查询结果数据集。
Explain有两个变种
1)explain extend:会在explain的基础上额外提供一些查询优化信息,紧随其后通过show warnings命令可以得到优化后的查询语句,从而看出优化器优化了些什么。额外还有filtered列,是一个半分比值,rows*filtered/100可以算出将要和explain中前一个表进行连接的行数。
2)explain partitions:相比explain多了一个partitions关键字,如果查询是基于分区表的话,会显示查询的当前分区。
explain中的列
1.ID列
2.select_type列
3.table列
4.type列
5.possible_type列
6.key列
7.key_len列
8.ref列
9.rows列
10.Extra列
索引的最佳实践
1.全值匹配
2.最左前缀法则
3.不在索引列上做任何操作,比如计算,函数,自动or手动类型转换,会导致索引失效而全表扫描
4.存储引擎不能使用索引中范围条件右边的列
5.尽量使用覆盖索引,只访问索引的查询(索引列包含查询列),减少select * 语句
6.mysql在使用不等于 !=或者<>的时候无法使用索引,导致全表扫描
7.is null ,is not null 也无法使用索引
8.like以通配符开头(‘$adc’)mysql索引失效导致全表扫描
9.字符串不加单引号,导致索引失效
10.少用or或者in,用来查询时,mysql不一定要使用索引。mysql内部优化器会根据检索比例,表大小等多个因素整体评估是否使用索引。
11.范围查询

相关推荐
-
「nginx」十、nginx的location配置详解2026-07-04 00:51:45 -

最清晰的mysql体系架构图 ,助你深度掌握MySQL开发管理,赢在大数据时代
最清晰的mysql体系架构图 ,助你深度掌握MySQL开发管理,赢在大数据时代2026-07-04 00:21:47 -
PHP读取Excel内的图片2026-07-03 00:07:41 -
mysql:Otter跨机房数据同步(单向)2026-07-03 00:02:48 -

在windows10系统下搭建IIS+PHP+MYSQL+phpMyAdmin服务器运行环境
在windows10系统下搭建IIS+PHP+MYSQL+phpMyAdmin服务器运行环境2026-07-02 00:15:08