1、引言
本专栏旨在深入探讨MySQL中的索引策略及其最佳实践。我们将从理论基础出发,逐步过渡到实际应用场景,帮助读者理解如何正确地创建和维护索引,以达到最优的性能表现。无论你是刚刚接触数据库的新手还是经验丰富的开发者,本文都将为你提供有价值的信息和指导,帮助你在日常工作中更有效地利用MySQL索引来提升数据库性能
2、SQL性能分析
2.1、慢查询日志
慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位秒,默认10秒)的所有sql日志
开启慢查询日志前,需要在mysql的配置文件中(/etc/my.cnf)配置如下信息:
-
- 开启mysql慢日志查询开关:
slow_query_log = 1
- 开启mysql慢日志查询开关:
-
- 设置慢日志的时间,假设为2秒,超过2秒就会被视为慢查询,记录慢查询日志:
long_query_time=2
- 设置慢日志的时间,假设为2秒,超过2秒就会被视为慢查询,记录慢查询日志:
-
- 配置完毕后,重新启动mysql服务器进行测试:
systemctl restarmysqld
- 配置完毕后,重新启动mysql服务器进行测试:
-
- 查看慢查询日志的系统变量,是否打开:
show variables like “slow_query_log”;
- 查看慢查询日志的系统变量,是否打开:
-
- 查看慢日志文件中(/var/lib/mysql/localhost-slow.log)记录的信息:
Tail -f localhost-slow.log
- 查看慢日志文件中(/var/lib/mysql/localhost-slow.log)记录的信息:
2.2、explain 详情
EXPLAIN 或者 DESC命令获取 MySQL 如何执行 SELECT 语句的信息,包括在 SELECT 语句执行过程中,表如何连接和连接的顺序。
语法 :直接在 select 语句之前加上关键字 explain/desc;
explain select 字段 from 表名 where 条件;