1 常见问题阻塞
慢查询
2 可以从以下几个方面入手服务器硬件优化
系统配置优化
数据库结构优化
SQL和索引
通常优化3和4
3 慢查询日志show variables like 'slow_query_log';
# 开启慢查询日志
set global slow_query_log=on;
# 查询慢查询日志文件存放的位置
show variables like 'slow_query_log_file';
# 设置慢查询日志文件存放的位置
set global slow_query_log_file= '/home/mysql/sql_log/mysql-slow.log'
# 设置是否将没有使用索引的SQL记录到慢查询日志中
set global log_queries_not_using_indexes=on;
# 设置是否将查询事件超过0秒的SQL记录到慢查询日志中,通产设置0.01秒
set global long_query_time=0;
4 实操
4.1 默认不开启慢查询日志
4.2 慢查询日志存储的位置
查询日志,这里我是Docker容器部署MySQL,映射在服务器上/data/mysql目录下
4.3 日志格式
第一行:执行SQL的主机信息
第二行:SQL的执行信息
第三行:SQL的执行事件
第四行:SQL的内容
5 慢查询日志分析工具
5.1 mysqldumpslow(官方工具)
5.1.1 参数解释-s 是order的顺序
al 平均锁定时间
ar 平均返回记录时间
at 平均查询时间(默认)
c 计数
l 锁定时间
r 返回记录
t 查询时间
-t 是