首页
学习
活动
专区
圈层
工具
发布

mysql查看sql执行记录

基础概念

MySQL查看SQL执行记录是指通过特定的工具或方法,记录并查看MySQL数据库中执行的SQL语句及其相关信息。这对于数据库性能优化、故障排查和安全审计等方面非常有用。

相关优势

  1. 性能优化:通过分析SQL执行记录,可以找出执行缓慢的SQL语句,从而进行优化。
  2. 故障排查:当数据库出现问题时,可以通过查看SQL执行记录来定位问题。
  3. 安全审计:记录SQL执行记录有助于监控和审计数据库操作,防止潜在的安全威胁。

类型

  1. 慢查询日志:记录执行时间超过设定阈值的SQL语句。
  2. 通用查询日志:记录所有执行的SQL语句,无论执行时间长短。
  3. 二进制日志:记录所有更改数据的SQL语句,用于数据恢复和复制。

应用场景

  1. 数据库性能调优:通过分析慢查询日志,找出并优化执行缓慢的SQL语句。
  2. 故障排查:当数据库出现性能问题或错误时,查看SQL执行记录以定位问题原因。
  3. 安全审计:监控和审计数据库操作,确保数据安全。

如何查看SQL执行记录

慢查询日志

  1. 启用慢查询日志
  2. 启用慢查询日志
  3. 查看慢查询日志
  4. 查看慢查询日志

通用查询日志

  1. 启用通用查询日志
  2. 启用通用查询日志
  3. 查看通用查询日志
  4. 查看通用查询日志

二进制日志

  1. 启用二进制日志: 在MySQL配置文件(如my.cnf)中添加以下配置:
  2. 启用二进制日志: 在MySQL配置文件(如my.cnf)中添加以下配置:
  3. 查看二进制日志
  4. 查看二进制日志

常见问题及解决方法

慢查询日志未生效

原因:可能是配置文件未正确设置或权限问题。

解决方法

  1. 确保在MySQL配置文件中正确设置了慢查询日志的相关参数。
  2. 检查日志文件路径的权限,确保MySQL用户有写权限。

日志文件过大

原因:长时间运行数据库会导致日志文件过大,影响性能和存储空间。

解决方法

  1. 定期清理或归档日志文件。
  2. 使用日志轮转工具(如logrotate)来管理日志文件。

日志记录过多影响性能

原因:启用通用查询日志或慢查询日志会记录大量SQL语句,影响数据库性能。

解决方法

  1. 只在必要时启用日志记录功能。
  2. 使用更高效的日志记录工具或方法,如使用MySQL的EXPLAIN命令分析SQL性能。

参考链接

希望这些信息对你有所帮助!如果有更多问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql查看执行过的历史sql语句

现甲方新增需求:1)C端产品更新需同步到B端,2)B端订单需要同步到一套ERP系统;3)订单管理、财务结算、物流配置需要全部在erp中实现;为了提交开发效率,打算用最传统的方法:通过在被同步端按人工录入一次数据,记录一次执行...sql语句,即方便、快捷、实用而且还准确,同时也能监控是否有其它未知问题。...查看mysql日志状态,日志路径show variables like 'general_log%'开启日志记录:set GLOBAL general_log=on关闭日志记录set GLOBAL general_log...=off本人开发环境是5.7,其它版本暂未测试,是否有效请自行测试,详情可以参考mysql官网有关“通用查询日志”https://dev.mysql.com/doc/refman/8.0/en/query-log.html...英文不好的同事可以百度或者使用chrome自带翻译,查看更方便。

1.7K10
  • MySQL怎么查看 SQL 的具体执行成本?

    前面文章中逐步分析 如何使用慢查询快速定位执行慢的 SQL? 如何使用 EXPLAIN 精准查看执行计划? 其实最终的目的只有一个:如何使用性能分析工具定位SQL执行慢的原因?...本篇主要是通过 如何使用 SHOW PROFILE 查看 SQL 的具体执行成本 SHOW PROFILE 相比 EXPLAIN 能看到更进一步的执行解析,包括 SQL 都做了什么、所花费的时间等。...mysql > show variables like 'profiling'; ?...你能看到当前会话一共有 2 个查询,如果我们想要查看上一个查询的开销,可以使用: mysql > show profile; ?...通过上面的结果,我们可以弄清楚每一步骤的耗时,以及在不同部分,比如 CPU、block.io 的执行时间,这样我们就可以判断出来 SQL 到底慢在哪里。

    5.7K40

    MySQL性能优化-查看执行慢的SQL语句

    MySQL性能优化-查看执行慢的SQL语句 查看执行慢的SQL语句,需要先开启慢查询日志 默认情况下,MySQL数据库没有开启慢查询日志 慢日志常用配置项 #是否启用慢查询日志 slow_query_log...= ON #指定慢查询日志文件位置及名称 slow_query_log_file = /var/lib/mysql/my-slow.log #慢查询执行时间阈值,超过此时间会记录,默认为10,单位为s...show variables like '%slow_query_log%'; 查看慢查询日志存放文件位置 show variables like '%slow_query_log%'; 查看long_query_time...#是否启用慢查询日志 slow_query_log = ON #指定慢查询日志文件位置及名称 slow_query_log_file = /var/lib/mysql/my-slow.log #慢查询执行时间阈值...,超过此时间会记录,默认为10,单位为s long_query_time = 10 #日志文件中的显示时区 log_timestamps = SYSTEM #慢查询日志输出目标,默认为file,即输出到文件

    1.4K10

    MySQL使用技巧: 如何查看mysql正在执行的SQL语句

    MySQL使用技巧: 如何查看mysql正在执行的SQL语句 背景: 最近项目开发用到MySQL,想要查看后台执行的sql语句,立马google得知、可以使用 show processlist; 命令来解决...,通过里面输出结果的字段解释中可以分析执行了的sql语句类型,但发现不太适合一般的初级使用者,而通过日志文件查看sql语句是最直接的方法。.../log.txt1    log=d:/mysql/data/log.txt 3:如此就可以记录所有的mysql执行的sql语句!  ...deleting from reference tables   服务器正在执行多表删除中的第二部分,正在删除其他表的记录。   ...Removing duplicates   正在执行一个SELECT DISTINCT方式的查询,但是MySQL无法在前一个阶段优化掉那些重复的记录。

    12.2K20

    MySQL Explain查看执行计划

    我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。...所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。...(QEP:sql生成一个执行计划query Execution plan) mysql> explain select * from user; expain出来的信息有10列,分别是id、select_type...五、possible_keys 指出MySQL能使用哪个索引在表中找到记录,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用 该列完全独立于EXPLAIN输出所示的表的次序。...在执行查询时所作的优化工作 • 部分统计信息是估算的,并非精确值 • EXPALIN只能解释SELECT操作,其他操作要重写为SELECT后查看执行计划。

    2.8K30

    Mysql-SQL执行顺序

    SQL的执行顺序事实上,sql并不是按照我们的书写顺序来从前往后、左往右依次执行的,它是按照固定的顺序解析的,主要的作用就是从上一个阶段的执行返回结果来提供给下一阶段使用,sql在执行的过程中会有不同的临时中间表...t.mobile having count(*)>2  order by s.create_time limit 5;1、from 第一步就是选择出from关键词后面跟的表,这也是sql...执行的第一步:表示要从数据库中执行哪张表。...通过from 和 join on 选择出需要执行的数据库表T和S,产生笛卡尔积,生成T和S合并的临时中间表Temp1。...实例说明:在temp7中排好序的数据,然后取前五条插入到Temp9这个临时表中,最终返回给客户端ps:实际上这个过程也并不是绝对这样的,中间mysql会有部分的优化以达到最佳的优化效果,比如在select

    2K10

    MySQL 8.0 SQL 执行流程

    MySQL 8.0 SQL 执行流程首先我们先来看下 MySQL 的经典架构图,8.0 的没怎么翻到,先看看这个了。...Optimzer优化器,将 SQL 进行优化生成多个执行计划。执行器上面优化器生成了多份执行计划后,接下来就由执行器选择一份计划执行了。...执行器先会判断当前是否具有权限,然后才会去执行相应的 SQL 语句。Caches缓存命中,8.0 中已经被干掉了。...比如他是将 SQL 语句作为 key 进行命中匹配的,如果 SQL 中多加了一个空格也会被认为不是同一条 SQL 导致匹配不到。Pluggable storage Engines数据库的执行引擎插件。...文件系统这个是存放 MySQL 的文件系统。SQL 执行流程SQL 流程是 SQL --> 解析器 --> 优化器 --> 执行器 --> 返回结果。下面会将各个组件单独拉出来做分析。

    92440

    MySQL的sql执行顺序

    在SQL语句中每个关键字都会按照顺序往下执行,而每一步操作,会生成一个虚拟表,最后产生的虚拟表会作为执行的最终结果返回。下面的是常用的关键字的执行顺序: ?... 1、FROM:对FROM左边的表和右边的表计算笛卡尔积,产生虚表VT1; 2、ON:对虚拟表VT1进行ON筛选,只有那些符合条件的行才会被记录在虚拟表...6、CUBE|ROLLUP:对虚拟表VT5进行CUBE或者ROLLUP操作,产生虚拟表VT6; 7、HAVING:对虚拟表VT6进行HAVING条件过滤,只有符合的记录才会被插入到虚拟表...VT7中; 8、SELECT:执行SELECT操作,选择指定的列,插入到虚拟表VT8中; 9、DISTINCT:对虚拟表VT8中的记录进行去重,产生虚拟表VT9; 10、ORDER BY:将虚拟表VT9...中的记录按照进行排序操作,产生虚拟表VT10; 11、LIMIT:取出指定行的记录,产生虚拟表VT11,并将结果返回。

    3.6K20

    查看SQL执行计划的方法及优劣

    在 Oracle 的性能分析中,很多时候需要对 SQL 进行分析,而最重要的就是对执行计划的分析。在本次的分享中,我主要介绍常用的查看 SQL 执行计划的方法。...1 AWR SQL report AWR 报告是对数据库性能诊断最常用的方式,同时 AWR SQL report 是展示AWR 负载信息中记录的关于 SQL 的相关信息的报告。...通常会用于问题诊断时对问题 SQL 的总体概况进行了解,因为可以查看 SQL 的多个执行计划及各执行计划的执行统计信息。...dbms_xplan.display_awr('sql_id') 使用该方法可以查看 AWR 信息中的信息,与 AWR 报告查看的执行计划基本一致,但是无法看到执行计划的详细统计信息。...4 AUTOTRACE 该方法可以在当前 session 开启,通过该方法可以查看在该 session 执行的所有 SQL 的执行计划及执行的消耗。

    1.7K20
    领券