MySQL中普通、慢查询日志的区别

Intro


之前的一篇分享提到,mysql日志类型可以分为三种,错误日志(error_log),查询日志(query_log),和二进制日志(binary_log),error_log的介绍与用法详见mysql日志之error_log,本文主要介绍general_log和slow_query_log的原理和用法。

通用查询日志

通用查询日志(general_log)主要用于查询各client连接数据库时的相关信息与在数据库上执行的SQL语句,配置方法为:

1、查询通用查询日志是否开启与其存放路径:

mysql> show variables like "general_log%";+------------------+------------------------------+| Variable_name    | Value                        |+------------------+------------------------------+| general_log      | OFF                           || general_log_file | /var/lib/mysql/localhost.log |+------------------+------------------------------+2 rows in set (0.00 sec)

屏幕输出中general_loggeneral_log_file记录了当前通用查询日志的开关状态与路径。

2、开启通用查询日志

    set global general_log = ON

查询是否成功:

mysql> show variables like "general_log%";+------------------+------------------------------+| Variable_name    | Value                        |+------------------+------------------------------+| general_log      | ON                           || general_log_file | /var/lib/mysql/localhost.log |+------------------+------------------------------+2 rows in set (0.00 sec)

成功。

退出一下看有没有生成并且正确记录:

[root@localhost ~]# cat /var/lib/mysql/localhost.log/usr/sbin/mysqld, Version: 5.7.19 (MySQL Community Server (GPL)). started with:Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sockTime                 Id Command    Argument2017-08-14T09:33:11.364650Z     5 Quit  2017-08-14T09:33:20.671113Z     6 Connect   root@localhost on  using Socket2017-08-14T09:33:20.671323Z     6 Query select @@version_comment limit 12017-08-14T09:33:22.964610Z     6 Query show variables like '%log%'2017-08-14T09:33:24.574224Z     6 Quit

成功,并且我们可以看到,log不仅记录了SQL命令,同时也包括了执行时间、Id、命令类型等相关数据

慢查询日志

慢查询日志记录了SQL语句时间超过了预设的long_query_time的语句,在数据量较大的情况下,可以看看慢查询日志中有哪些语句需要进行优化。

蓝心千询 蓝心千询

蓝心千询是vivo推出的一个多功能AI智能助手

蓝心千询 34 查看详情 蓝心千询

1、慢查询日志的配置

慢查询日志的配置可以在数据库配置文件my.cnf中查到:

[root@localhost ~]# cat /etc/my.cnf | grep -E 'long|slow|not_using_indexes'long_query_time = 1#log-slow-queries = /var/log/mysql/slow.loglog_queries_not_using_indexes

可以看到:

long_query_time = 1的意思是SQL语句执行时间超过1s的,对其进行记录;
log-slow-queries = /var/log/mysql/slow.log是对慢查询日志路径的设置;
log_queries_not_using_indexes意思为不使用索引的语句,可以缩小记录的目标

实际配置与通用查询日志相同,在mysql交互界面中输入命令开启慢查询日志:

    set slow_query_log = ON

2、查询是否成功

[root@localhost ~]# cat /var/lib/mysql/localhost-slow.log/usr/sbin/mysqld, Version: 5.7.19 (MySQL Community Server (GPL)). started with:Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sockTime                 Id Command    Argument

成功。

但注意,slow_query_log可能会记录到与用户权限和密码相关的语句,因此在使用慢查询日志文件时请注意日志的安全保存。

以上就是MySQL中普通、慢查询日志的区别的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/392403.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
0xc000012f错误代码 原因及修复指南
上一篇 2025年11月6日 16:17:39
【IC风云榜候选企业166】北方华创:半导体设备龙头企业,多维度打造最佳雇主品牌
下一篇 2025年11月6日 16:17:41

相关推荐

  • MySQL执行计划中的Extra字段代表什么_怎么看优化空间?

    MySQL执行计划中的Extra字段代表什么_怎么看优化空间?MySQL执行计划中的Extra字段代表什么_怎么看优化空间?MySQL执行计划中的Extra字段代表什么_怎么看优化空间?MySQL执行计划中的Extra字段代表什么_怎么看优化空间?

    在 mysql 查询优化中,执行计划的 extra 字段用于说明查询执行时的额外操作,常见的值包括:1. using filesort 表示需要额外排序,应尽量通过建立索引避免;2. using temporary 表示使用了临时表,常见于 group by 或复杂 join,需优化减少其使用;3.…

    2026年9月21日 用户投稿
    000
  • 如何在Java中理解Java I/O与NIO机制

    传统I/O是阻塞式流模型,适用于低并发场景;NIO基于缓冲区与通道,支持非阻塞和多路复用,适合高并发网络应用,核心区别在于线程模型与资源利用率。 Java中的I/O(输入/输出)与NIO(New I/O)是处理数据读写的核心机制,理解它们的区别和使用场景对开发高性能应用至关重要。传统I/O基于流模型…

    2026年9月21日
    000
  • MySQL数据分库分表如何设计_避免性能瓶颈的方法?

    MySQL数据分库分表如何设计_避免性能瓶颈的方法?MySQL数据分库分表如何设计_避免性能瓶颈的方法?MySQL数据分库分表如何设计_避免性能瓶颈的方法?MySQL数据分库分表如何设计_避免性能瓶颈的方法?

    分库分表设计需注意分片键选择、分片数量控制、避免跨库查询及完善运维体系。一,优先选择高频查询字段作为分片键,如用户id,避免使用时间戳以防写热点;二,初期合理分片(如4~8库,每库4~8表),预留扩容空间并根据数据总量反推分片数;三,尽量避免跨库查询,可通过冗余数据、异步汇总或强制路由优化;四,配套…

    2026年9月21日 用户投稿
    000
  • 如何限制Linux用户cron任务 /etc/cron.deny使用技巧

    如何限制Linux用户cron任务 /etc/cron.deny使用技巧如何限制Linux用户cron任务 /etc/cron.deny使用技巧如何限制Linux用户cron任务 /etc/cron.deny使用技巧如何限制Linux用户cron任务 /etc/cron.deny使用技巧

    要限制linux用户执行cron任务,可编辑/etc/cron.deny文件,每行添加一个需禁止的用户名,保存后立即生效;若需更细粒度控制,可使用pam_time模块;此外,还可通过sudoers文件、chroot环境、linux capabilities、apparmor或selinux等方法限制…

    2026年9月21日 用户投稿
    100
  • MySQL用户权限体系配置思路_Sublime中编辑多用户分权管理脚本

    MySQL用户权限体系配置思路_Sublime中编辑多用户分权管理脚本MySQL用户权限体系配置思路_Sublime中编辑多用户分权管理脚本MySQL用户权限体系配置思路_Sublime中编辑多用户分权管理脚本MySQL用户权限体系配置思路_Sublime中编辑多用户分权管理脚本

    最小权限原则是mysql用户权限配置的核心,确保每个用户仅拥有必要权限以提升安全性与可维护性。1.明确需求:根据用户角色分配如只读、增删改查或结构修改权限;2.创建用户并编写sql脚本进行权限管理,替代手动输入命令,提高效率与一致性;3.使用sublime text等编辑器提升脚本编写效率,利用语法…

    2026年9月21日 用户投稿
    000
  • Linux目录结构学习常见问题汇总

    Linux目录结构学习常见问题汇总Linux目录结构学习常见问题汇总Linux目录结构学习常见问题汇总Linux目录结构学习常见问题汇总

    Linux只有一个根目录,所有设备挂载于此,形成统一树状结构。根目录下各路径分工明确:/bin和/sbin分别存放用户与管理员命令;/etc集中配置文件;/home为用户家目录;/var存储日志等动态数据;/tmp用于临时文件;/usr存放系统程序,/usr/local供手动安装软件;/dev包含设…

    2026年9月21日 用户投稿
    000
  • 事务隔离级别在mysql中如何应用

    MySQL提供四种事务隔离级别:READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ(默认)、SERIALIZABLE,依次增强数据一致性,分别用于平衡并发性能与脏读、不可重复读、幻读等问题;通过SELECT @@tx_isolation等命令可查看级别,S…

    2026年9月21日
    300
  • mysql数据库和表的关系是怎样

    数据库是表的集合,一个MySQL数据库可包含多个表,表依赖数据库存在,需先创建数据库才能建表,如CREATE DATABASE school;USE school;CREATE TABLE students;数据库实现数据隔离与管理,不同项目使用不同数据库,便于组织与权限控制。 MySQL数据库和表…

    2026年9月21日
    000
  • 有趣的操作系统:文件IO和网络IO

    一、从i/o开始 在学习和使用计算机的过程中,i/o(输入/输出)是不可避免的一个概念,指的是操作、程序或设备与计算机之间发生的数据传输过程。 对于计算机来说,I/O操作和计算处理是其两大核心任务,其中大部分时间都用于执行I/O操作。I/O操作包括硬件和软件两部分,即I/O设备和I/O子系统。 I/…

    2026年9月21日
    000
  • mysql如何调整字符集和排序规则

    答案是调整MySQL字符集和排序规则需分层级操作:先修改数据库默认设置,再转换表和字段,最后配置服务器参数。具体步骤为:使用ALTER DATABASE更改数据库默认字符集;用ALTER TABLE CONVERT TO转换表中所有字符型字段;通过MODIFY修改特定字段的字符集;在my.cnf中设…

    2026年9月21日
    000
  • mysql安装后如何优化配置文件

    答案:优化MySQL配置需先定位配置文件,再根据硬件和业务调整内存、InnoDB、连接等核心参数。具体包括设置innodb_buffer_pool_size为物理内存50%~70%,合理配置日志参数与连接数,启用慢查询日志,并使用工具辅助调优,避免过度配置,确保稳定高效。 MySQL 安装后,优化配…

    2026年9月21日
    000
  • mysql如何设计数据归档表

    归档目标是解决主表数据量过大问题,需明确归档范围如时间维度冷数据,设计与原表一致或简化的归档表结构,保留必要索引并可添加archive_time字段和分区,通过分批迁移、限流休眠、事务安全和断点记录策略执行归档,避免影响线上服务,同时建立查询视图、定期备份、监控任务及生命周期管理,确保数据可用与系统…

    2026年9月21日
    000
  • 如何基于Swoole开发自定义框架?

    基于swoole开发自定义框架可以通过以下步骤实现:1. 创建核心app类,初始化swoole服务器并定义回调函数;2. 实现路由功能,使用router类处理请求分发;3. 添加中间件支持,使用middleware类处理请求;4. 集成异步数据库操作,使用swoole的mysql协程客户端;5. 实…

    2026年9月21日
    100
  • mysql如何理解数据压缩

    MySQL数据压缩通过减少存储空间提升I/O效率,主要在InnoDB引擎中实现页级压缩,使用zlib算法对BLOB、TEXT等大字段表压缩效果显著,需设置ROW_FORMAT=COMPRESSED和KEY_BLOCK_SIZE;压缩可降低磁盘使用并加速全表扫描,但增加CPU开销,频繁更新可能导致页分…

    2026年9月21日
    000
  • 如何在Java中使用接口实现多继承效果

    Java不支持多继承,但可通过实现多个接口模拟该效果。类可同时实现Flyable、Swimmable等接口,具备多种行为能力,并能利用默认方法复用逻辑,如Loggable提供日志功能。当多个接口含同名默认方法时,需在类中显式重写以解决冲突。接口用于定义“能做什么”,抽象类描述“是什么”,因类只能单继…

    2026年9月21日
    100
  • mysql如何使用savepoint

    SAVEPOINT用于在事务中设置回滚点,支持部分回滚。开启事务后可用SAVEPOINT命名保存点,通过ROLLBACK TO回滚至指定点,RELEASE SAVEPOINT可释放保存点。例如转账时先扣款并设保存点,若后续操作失败可回滚到该点,保留前置操作。保存点仅在当前事务有效,提交或回滚后自动清…

    2026年9月21日
    100
  • mysqlmysql如何优化in条件大列表查询

    使用EXPLAIN和慢查询日志判断IN性能问题,type为ALL且possible_keys为空或rows过大说明需优化;JOIN在有索引时通常优于IN,尤其当列表值来自另一表时;大IN列表可拆分为多个小IN结合UNION ALL,或存入临时表后用JOIN提升效率。 优化 MySQL 中 IN 条件…

    2026年9月21日
    000
  • Linux怎么踢出指定的登录用户

    要踢出指定登录用户,首先使用w或who命令识别其TTY或会话ID,再通过pkill -KILL -t 强制终止会话,或用loginctl terminate-session 优雅结束;若需防止重新登录,可临时锁定账户(passwd -l)或将用户shell改为/sbin/nologin。 在Linu…

    2026年9月21日
    000
  • 如何配置mysql初始用户和密码

    答案:MySQL安装后默认用户为root,密码为空或自动生成。需先确认服务运行,再登录并设置密码;若为空密码则直接登录后用ALTER USER修改,若为临时密码需从日志获取并强制修改;可创建远程用户并授权;推荐运行mysql_secure_installation进行安全加固,包括设密码、删匿名用户…

    2026年9月21日
    000
  • mysql如何排查磁盘IO瓶颈

    首先检查系统级磁盘IO,使用iostat、iotop等工具分析磁盘利用率和进程IO行为;再通过MySQL慢查询日志、sys.schema视图及SHOW ENGINE INNODB STATUS排查高IO消耗的SQL与内部等待事件;接着评估innodb_buffer_pool_size、innodb_…

    2026年9月21日
    000

发表回复

登录后才能评论
关注微信