# 在MySQL登录状态下查看慢查询日志阈值 , 执行时间超过这个值的SQL会被记录下来mysql> show variables like 'long_query_time';+-----------------+-----------+| Variable_name| Value|+-----------------+-----------+| long_query_time | 10.000000 |+-----------------+-----------+# 查询是否开启慢查询日志(默认关闭)mysql> show variables like 'slow_query_log';+----------------+-------+| Variable_name| Value |+----------------+-------+| slow_query_log | OFF|+----------------+-------+# 开启慢查询日志mysql> set global slow_query_log=on;
一个和慢查询日志有关的参数是log_queries_not_using_indexes
, 开启之后 。如果运行的SQL没有使用索引 , 则MySQL数据库同样会将这条SQL语句记录到慢查询日志文件中 。
# 查询是否将未执行索引的SQL加入到慢查询日志当中(默认关闭)mysql> show variables like 'log_queries_not_using_indexes';+-------------------------------+-------+| Variable_name| Value |+-------------------------------+-------+| log_queries_not_using_indexes | OFF|+-------------------------------+-------+# 开启参数mysql> set global log_queries_not_using_indexes=on;
查看慢查询日志的路径 , 以及通过linux命令查看慢查询日志内容 。
# 确保在MySQL登录状态下mysql> show variables like 'slow%';+---------------------+------------------------------------------------------------+| Variable_name| Value|+---------------------+------------------------------------------------------------+| slow_launch_time| 2|| slow_query_log| ON|| slow_query_log_file | /usr/local/mysql/data/lilithgamesdeMacBook-Pro-42-slow.log |+---------------------+------------------------------------------------------------+# 在Linux用户终端查看慢查询日志文件后50页的内容(这个命令我们在上面查看错误日志的时候也用到了)sudo tail -n 50 /usr/local/mysql/data/lilithgamesdeMacBook-Pro-42-slow.log
除此之外 , MySQL还提供了其他参数用于控制每分钟允许插入到慢查询日志中的未使用索引的SQL的语句次数(防止慢查询日志增长过快) , 以及提供了命令用于筛选慢查询日志中的数据 , 如展示执行时间最长的10条SQL等等功能 , 在此不多赘述 , 大家用到时再多作了解 。
查询日志(log)查询日志记录了所有MySQL数据库的请求信息 , 如论请求是否得到执行 。因为有慢查询日志的存在 , 一般情况下对查询日志的使用依赖较小 , 开启后也会有一定的性能损耗 , 默认关闭 。
# 查看查询日志的开启状态和位置mysql> show variables like 'general_log%';+------------------+-------------------------------------------------------+| Variable_name| Value|+------------------+-------------------------------------------------------+| general_log| OFF|| general_log_file | /usr/local/mysql/data/lilithgamesdeMacBook-Pro-42.log |+------------------+-------------------------------------------------------+# 开启查询日志mysql> set global general_log = on;# 查看查询日志文件(在Linux用户终端 , 而不是MySQL登录态)sudo tail -n 50 /usr/local/mysql/data/lilithgamesdeMacBook-Pro-42.log
二进制日志(binary log)二进制日志记录了对MySQL数据库执行更改的所有操作(不包括select和show命令 , 但这些会被记录到查询日志中) 。二进制日志主要作用有以下几点:
- 数据恢复:用户可以通过二进制日志进行精确的数据恢复 。
- 主从复制:通过复制和执行二进制日志使得一台远程的MySQL数据库与另一台提供数据的MySQL数据库进行实时同步 。
# 通过命令查看二进制日志的开启状态mysql> show variables like '%log_bin%';+---------------------------------+------------------------------------+| Variable_name| Value|+---------------------------------+------------------------------------+| log_bin| ON|| log_bin_basename| /usr/local/mysql/data/binlog|| log_bin_index| /usr/local/mysql/data/binlog.index || log_bin_trust_function_creators | OFF|| log_bin_use_v1_row_events| OFF|| sql_log_bin| ON|+---------------------------------+------------------------------------+
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2023年10月8日上香好不好 2023年10月8日是上香的黄道吉日吗
- 2023年10月8日香炉安放好不好 2023年10月8日是香炉安放的黄道吉日吗
- 奉贤是哪个省的城市
- 第二十五届奥运会是在哪年举行的
- 山竹吃起来酸酸的是对的吗
- 2023年10月8日修建坟墓吉日一览表 2023年10月8日是修建坟墓的黄道吉日吗
- 4D厨房红黄胶带的意思
- 厨房常见的虫子
- 2023年10月8日出丧行吗 2023年10月8日是出丧的黄道吉日吗
- 火灾会带来哪些危害