1.查看容器
docker ps
2.进入容器
docker exec -it 7b7b345abeb6 /bin/bash
有两种修改方法,一种是通过sql语句(mysql重启后失效),另外一种是修改配置文件(永久有效)
1.登入mysql
- mysql -u root -p
- #然后输入密码
2.查看是否开启了慢查询日志、设置的阈值、慢查询日志的存放位置
- show variables like 'slow%';
- #不同版本会有区别所以也可以使用第二种方法查看(两个百分号%)
- show variables like '%slow%';
如图所示,并未开启慢查询 slow_query_log为OFF
3.开启慢查询日志,设置阈值
- #开启慢查询
- set global slow_query_log = ON;
- #修改慢sql的阈值,sql执行超过阈值的时候就会记录到慢日志的log文件中。
- set global slow_launch_time = 3;//根据需要设置秒数
4.退出mysql,查看慢查询日志
- #退出mysql
- exit
- #查看慢查询日志
- cat -n /var/lib/mysql/7b7b345abeb6-slow.log
vim /etc/mysql/my.cnf
- #更新数据源列表
- apt-get update
- #安装vim
- apt-get install vim
- [mysqld]
- slow_query_log = ON
- slow_query_log_file = /var/lib/mysql/tmp_slow.log //linux
- long_query_time = 1
- #先退出容器
- exit
- #关闭,重启容器
- docker kill 7b7b345abeb6
- docker start 7b7b345abeb6
- #进入容器
- docker exec -it 7b7b345abeb6 /bin/bash
- #方法一直接查看
- cat -n /var/lib/mysql/7b7b345abeb6-slow.log
-
- #方法二通过mysql自带的工具查看, 显示出慢查询日志中最慢的10条sql
- mysqldumpslow -t 10 /var/lib/mysql/7b7b345abeb6-slow.log
-
- #方法三 详细的sql情况(方法二的详细版)
- mysqldumpslow -a -s t -t 10 /var/lib/mysql/7b7b345abeb6-slow.log
1)mysqldumpslow还有一些其他参数,可以通过mysqldumpslow --help查看
2)mysqldumpslow能将相同的慢SQL归类,并统计出相同的SQL执行的次数,每次执行耗时多久、总耗时,每次返回的行数、总行数,以及客户端连接信息等。
- mysqldumpslow语法说明:
- -s ,按照什么方式起来排序。默认at,也就是按照平均查询时间来排序。都是按照倒序排列。
- al: average lock time 平均锁定时间
- ar: average rows sent 平均返回行数
- at: average query time 平均查询时间
- c: count 总执行次数
- l: lock time 总锁定时间
- r: rows sent 总返回行数
- t: query time 总查询时间
- -t ,show the top n queries,显示前多少名的记录
- -a ,默认不开启这个选项。mysqldumpslow将相似的SQL的值(字符串或者数字)替换为N,开启该选项,则显示真实值。不开启该选项,有点类似于Oracle的绑定变量的记录。
- -g ,类似于grep命令,过滤出需要的信息。如,只查询A表的慢查询记录。
- -l ,总时间中包含锁定时间