mysql慢日志设置多少合适(MySQL慢查询日志的作用和开启)
mysql慢日志设置多少合适
MySQL慢查询日志的作用和开启前言
MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。
官方文档,关于慢查询的日志介绍如下(部分资料,具体参考官方相关链接):
The slow query log consists of SQL statements that took more than long_query_time seconds to execute and required at least min_examined_row_limit rows to be examined. The minimum and default values of long_query_time are 0 and 10, respectively. The value can be specified to a resolution of microseconds. For logging to a file, times are written including the microseconds part. For logging to tables, only integer times are written; the microseconds part is ignored.
By default, administrative statements are not logged, nor are queries that do not use indexes for lookups. This behavior can be changed usinglog_slow_admin_statements and log_queries_not_using_indexes, as described later.
慢查询日志相关参数
MySQL 慢查询的相关参数解释:
- slow_query_log :是否开启慢查询日志,1表示开启,0表示关闭。
- log-slow-queries :旧版(5.6以下版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log
- slow-query-log-file:新版(5.6及以上版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log
- long_query_time :慢查询阈值,当查询时间多于设定的阈值时,记录日志。
- log_queries_not_using_indexes:未使用索引的查询也被记录到慢查询日志中(可选项)。
- log_output:日志存储方式。log_output='FILE'表示将日志存入文件,默认值是'FILE'。log_output='TABLE'表示将日志存入数据库,这样日志信息就会被写入到mysql.slow_log表中。MySQL数据库支持同时两种日志存储方式,配置的时候以逗号隔开即可,如:log_output='FILE,TABLE'。日志记录到系统的专用日志表中,要比记录到文件耗费更多的系统资源,因此对于需要启用慢查询日志,又需要能够获得更高的系统性能,那么建议优先记录到文件。
慢查询日志的作用
慢查询日志会把查询耗时超过规定时间的SQL语句记录下来,利用慢查询日志,可以定位分析性能的瓶颈
查看慢查询日志功能是否开启,以及慢查询日志文件存放目录
|
SHOW VARIABLES LIKE 'slow_query%' |
开启慢查询日志
- slow_query_log 可以设置慢查询日志的开关状态
- long_query_time 可以规定查询超时的时间,单位是秒
在MySQL配置文件 /etc/my.cnf 中,设置
|
slow_query_log= ON long_query_time=1 |
开启慢查询日志,记录查询超过1秒的sql语句,重启MySQL后生效。
可以使用下面sql测试以下
|
SELECT SLEEP(2); |
慢查询日志记录文件
|
Tcp port: 0 Unix socket: ( null ) Time Id Command Argument # Time : 210125 6:30:14 # User @Host: reptile[reptile] @ [192.168.10.254] Id: 1 # Query_time: 2.000380 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 SET timestamp =1611556214; SELECT SLEEP(2); |
- SET timestamp=1611556214; 执行sql时间戳
- Query_time sql执行时长
- Rows_sent 返回几条记录
总结
到此这篇关于MySQL慢查询日志的作用和开启的文章就介绍到这了,更多相关MySQL慢查询日志内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://juejin.cn/post/6921584357542985741
- mysql百万数据分页查询优化方案(MySQL单表亿级数据分页怎么优化?)
- navicat连接mysql是远程连接吗(详解Navicat远程连接mysql很慢)
- mysql8修改默认端口(MySQL 8.0新特性 — 管理端口的使用简介)
- mysql如何解析binlog(MySQL的binlog日志使用详解)
- MYSQL中GROUP BY不包含所有的非聚合字段时的注意事项
- mysql中行列转换(mysql 行列转换的示例代码)
- mysql数据库怎么换行(MySQL数据中很多换行符和回车符的解决方法)
- mysql索引应该注意的地方(关于MySQL索引知识的小妙招)
- 在php中与数据库连接的技术(PHP7.0连接DB操作实例分析基于mysqli)
- 操作mysql的jdbc(JDBC连接的六步实例代码与mysql连接)
- mysql整体架构设计(MySQL 整体架构介绍)
- mysql将字符串转换为日期的函数(Mysql中时间戳转为Date的方法示例)
- mysql exists的用法(Mysql exists用法小结)
- mysql插入数据错误代码(教你解决往mysql数据库中存入汉字报错的方法)
- mysql中查询数据合并(Mysql合并结果接横向拼接字段的实现步骤)
- mysql标签的用法(mysql 的indexof函数用法说明)
- 为什么现在社会越来越卷了(现在社会为什么发展那么快呢)
- 直播带货能赚到很多钱吗(直播带货能赚到很多钱吗现在)
- 做网红真的很能赚钱吗(做网红真的很能赚钱吗)
- 10句英语常用(英语常用900句)
- 爱情能当饭吃吗(爱情能当饭吃吗说说)
- 白T恤穿法(白t恤)
热门推荐
- docker的一些使用方法(使用Docker 安装 Jenkins的方法)
- 了解mysql数据自动备份(MySQL数据备份方法的选择与思考)
- navicat怎么导入sql数据库文件(Navicat导出.sql文件方法)
- php排序代码详解(PHP实现数据四舍五入的方法小结4种方法)
- mysql删除表内所有数据(mysql 大表批量删除大量数据的实现方法)
- SQL replace的使用方法
- html正则表达式案例(关于html字符串正则判断和匹配的具体使用)
- canvas 绘图解决方案(高清屏下canvas重置尺寸引发的问题的解决)
- mysql主从模式与读写分离(磁盘写满导致MySQL复制失败的解决方案)
- laravel实现跨域访问(使用laravel和ajax实现整个页面无刷新的操作方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9