运行 MySQL 时,查询速度比较慢的语句对数据库的影响非常大,这些慢语句大多是写的不够合理或者大数据环境下多表并发查询造成的。MySQL 自带慢查询功能,能记录查询时间超过参数 long_query_time
的值的语句,用于定位执行慢的 SQL 语句。您可以优化慢查询语句从而优化 MySQL。
远程连接 并登录到 Linux 实例。
执行命令 ls
查找 MySQL 配置文件,通常为 my.ini。
执行命令 find $PWD -type f | grep "您查到的 MySQL 配置文件"
查找文件路径。
执行命令 cd 您查找到的文件路径
。
进入 MySQL 执行命令 show variables like "%long%";
查看慢查询的默认时间。
执行命令 vi 您查到的 MySQL 配置文件
,按 i 进入编辑模式,在 [mysqld] 小节处粘贴并复制以下内容,然后按 Esc 退出编辑模式,输入 :wq
保存退出。
- log-slow-queries = /var/lib/mysql/mysql-slow.log #表示慢查询的日志存储目录。此目录文件一定要有写权限。
- long_query_time = 2 #MySQL 将记录下所有执行时间超过 2 条的 SQL 语句。
进入 MySQL 执行命令 set global slow_query_log='ON';
启用慢查询。
进入 MySQL 执行命令 show variables like "%slow%";
查看是否已开启慢查询,如果 log_slow_queries 状态为 ON,则表示已经开启慢查询。
执行命令 service mysql restart
重新启动 MySQL 服务。