怎么做点击图片进入网站,网站开发实验报告模版,电商详情页设计模板,有教人做衣服的网站慢查询日志
查看执行慢的SQL语句#xff0c;需要先开启慢查询日志。 MySQL 的慢查询日志#xff0c;记录在 MySQL 中响应时间超过阀值的语句#xff08;具体指运行时间超过 long_query_time 值的SQL。long_query_time 的默认值为10#xff0c;意思是运行10秒以上(不含10秒…慢查询日志
查看执行慢的SQL语句需要先开启慢查询日志。 MySQL 的慢查询日志记录在 MySQL 中响应时间超过阀值的语句具体指运行时间超过 long_query_time 值的SQL。long_query_time 的默认值为10意思是运行10秒以上(不含10秒)的语句。
目的发现执行时间特别长的SQL查询进行优化。
默认情况下MySQL数据库没有开启慢查询日志需要我们手动来设置这个参数。 慢日志常用配置项 1 2 3 4 5 6 7 8 slow_query_log 是否启用慢查询日志默认为0可设置为0、11表示开启。 slow_query_log_file 指定慢查询日志位置及名称默认值为host_name-slow.log可指定绝对路径。 long_query_time 慢查询执行时间阈值超过此时间会记录默认为10单位为s。 log_output 慢查询日志输出目标默认为file即输出到文件。 log_timestamps 主要是控制 error log、slow log、genera log 日志文件中的显示时区默认使用UTC时区建议改为 SYSTEM 系统时区。 log_queries_not_using_indexes 是否记录所有未使用索引的查询语句默认为off。 min_examined_row_limit 对于查询扫描行数小于此参数的SQL将不会记录到慢查询日志中默认为0。 log_slow_admin_statements 慢速管理语句是否写入慢日志中管理语句包含 alter table、create index 等默认为 off 即不写入
一般情况下我们只需开启慢日志记录配置下阈值时间其余参数可按默认配置。对于阈值时间可灵活调整比如说可以设置为 1s 或 3s 。 查看是否开启慢查询日志 1 show variables like %slow_query_log%; 开启慢查询临时,当前会话有效 1 set global slow_query_logON; 查看慢查询日志存放文件位置 1 show variables like %slow_query_log_file%; 查看long_query_time阈值 1 show variables like %long_query_time%; 设置long_query_time阈值临时,当前会话有效 1 set global long_query_time3 直接修改配置文件全局需要重启服务慎重 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #编辑配置文件 vim /etc/my.cnf # 修改配置项如果没有就加上 [mysqld] slow_query_log ON slow_query_log_file /var/lib/mysql/my-slow.log long_query_time 1 log_timestamps SYSTEM log_output FILE # 重启mysqld服务 systemctl restart mysqld # 查看mysqld服务 systemctl status mysqld 测试 1 2 select sleep(5); ls /var/lib/mysql/xxx-slow.log 慢查询日志文件分析 单条记录结构
单条记录结构 1 2 3 4 5 # Time: 2024-03-01T17:12:40.15648808:00 # UserHost: panda[panda] [192.168.72.1] Id: 8 # Query_time: 5.000688 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 1 SET timestamp1709284355; select sleep(5);
字段说明 慢查询日志以#作为起始符。 Time:查询的时间。 UserHost表示用户 和 慢查询查询的ip地址。 如上所述表示 root用户 localhost地址。 Query_time: 表示SQL查询持续时间 单位 (秒)。 Lock_time: 表示获取锁的时间 单位(秒)。 Rows_sent: 表示发送给客户端的行数。 Rows_examined: 表示服务器层检查的行数。 set timestamp 表示 慢SQL 记录时的时间戳。 最后 select sleep(5) 则表示慢SQL语句。 慢查询日志分析-mysqldumpslow
MySQL自带了一个慢查询分析工具mysqldumpslow。 试了下不太好使。可以试试 Navicat Monitor、signoz、hertzbeat 这些性能监测工具。 1 2 3 4 mysqldumpslow s c t 10 /var/run/mysqld/mysqldslow.log # 取出使用最多的10条慢查询 mysqldumpslow s t t 3 /var/run/mysqld/mysqldslow.log # 取出查询时间最慢的3条慢查询 mysqldumpslow s t t 10 g “left join” /database/mysql/slowlog #得到按照时间排序的前10条里面含有左连接的查询语句 mysqldumpslow s r t 10 g left join /var/run/mysqld/mysqldslow.log # 按照扫描行数最多的 慢查询日志分析-Navicat Monitor
官网下载就行了。跟着指引配置即可。 很舒服还可以自动提供一些运维建议。 查询分析 其他细节 记录管理语句
在 MySQL 中慢查询日志中默认不记录管理语句如 1 alter table, analyze tablecheck table
不过可通过以下属性进行设置 1 mysql set global log_slow_admin_statements ON; 记录未走索引的SQL语句
在 MySQL 中还可以设置将未走索引的SQL语句记录在慢日志查询文件中(默认为关闭状态)。通过下述属性即可进行设置 1 2 mysql set global log_queries_not_using_indexes ON; Query OK, 0 rows affected (0.00 sec)
SQL 复制 全屏 慢查询日志输出位置
在MySQL中日志输出格式有支持FILE(默认)TABLE 两种可进行组合使用。如下所示: 1 set global log_output FILE,TABLE;
这样设置会同时在 FILE, mysql库中的slow_log表中同时写入。 1 select * from mysql.slow_log;