MySQL 慢查询
开启慢查询日志
在配置文件my.cnf或my.ini中在 [mysqld] 一行下面加入两个配置参数
slow_query_log = on #开启慢查询 long_query_time=1 #设置慢查询时间 1 s log-slow-queries="D:/phpStudy/MySQL/data/slow_query.log" #旧版(5.6以下版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件hostname-slow.log
slow_query_log_file="D:/phpStudy/MySQL/data/slow_query.log" #新版(5.6及以上版本)慢查询日志保存路径 未指定slow_query_log_file的情况下,会自动生成一个以主机名+‘slow'.log 的文件
log-queries-not-using-indexes = on #开启记录没有使用索引查询语句
sql 查看慢查询配置
show status like 'slow_queries'; #慢查询的次数 (默认是慢查询时间10s) show variables like 'long_query_time' ; //可以显示当前慢查询时间 set long_query_time=1 ; //可以修改慢查询时间 当前会话有效,永久有效请修改配置文件
慢查询记录到日志
在默认情况下,低版本的mysql不会记录慢查询,需要在启动mysql时候,指定记录慢查询才可以
bin\mysqld.exe –log-slow-queries=D:/abc.log [低版本mysql5.0可以在my.ini指定]
该慢查询日志在mysql5.0这个版本中时放在 mysql安装目录/data/下;
针对 mysql5.5启动慢查询有两种方法
① bin\mysqld.exe - -safe-mode - -slow-query-log
②在my.ini 文件中配置 [mysqld] 添加slow-query-log = on # 开启慢查询这个功能
可以通过 slow_query_log_file="日志存放位置"指定目录,默认存放在 mysql5.5.19是在my.ini 的 datadir=“目录” ;
在mysql5.6中,默认是启动记录慢查询的,my.ini其中有一个配置项 slow-query-log=1;
慢查询相关命令
mysql> show variables like '%slow%'; +---------------------+---------------------------------------+ | Variable_name | Value | +---------------------+---------------------------------------+ | log_slow_queries | OFF | | slow_launch_time | 2 | | slow_query_log | OFF | | slow_query_log_file | D:\phpStudy\MySQL\data\Admin-slow.log | +---------------------+---------------------------------------+
mysql> show variables like '%long%'; +---------------------------------------------------+-----------+ | Variable_name | Value | +---------------------------------------------------+-----------+ | long_query_time | 10.000000 | | max_long_data_size | 1048576 | | performance_schema_events_waits_history_long_size | 10000 | +---------------------------------------------------+-----------+
mysql> show variables like '%min%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | ft_min_word_len | 4 | | min_examined_row_limit | 0 | | query_cache_min_res_unit | 4096 | +--------------------------+-------+