首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql 执行历史记录

基础概念

MySQL 执行历史记录是指记录 MySQL 数据库服务器上执行的 SQL 语句的日志。这些记录可以帮助数据库管理员和开发人员追踪和审计数据库操作,排查问题,优化性能等。

相关优势

  1. 审计和追踪:通过查看执行历史记录,可以追踪数据库的操作,确保数据安全。
  2. 故障排查:当数据库出现问题时,可以通过查看执行历史记录来定位问题。
  3. 性能优化:通过分析执行历史记录,可以发现慢查询,优化数据库性能。
  4. 备份和恢复:执行历史记录可以作为备份的一部分,帮助恢复数据。

类型

  1. 通用查询日志(General Query Log):记录所有客户端连接和执行的 SQL 语句。
  2. 慢查询日志(Slow Query Log):记录执行时间超过设定阈值的 SQL 语句。
  3. 错误日志(Error Log):记录 MySQL 服务器的启动、运行和关闭过程中的错误信息。
  4. 二进制日志(Binary Log):记录所有更改数据的 SQL 语句,用于数据恢复和主从复制。

应用场景

  1. 数据库审计:确保数据库操作符合安全规范。
  2. 性能监控:通过分析慢查询日志,优化数据库性能。
  3. 故障排查:通过查看错误日志和执行历史记录,定位和解决数据库问题。
  4. 数据恢复:通过二进制日志进行数据恢复。

常见问题及解决方法

问题:MySQL 执行历史记录不完整或不准确

原因

  • 日志级别设置不当。
  • 日志文件被意外删除或损坏。
  • 日志文件大小限制导致日志被轮转。

解决方法

  1. 检查日志级别设置
  2. 检查日志级别设置
  3. 根据需要调整日志级别,例如启用通用查询日志:
  4. 根据需要调整日志级别,例如启用通用查询日志:
  5. 确保日志文件完整
    • 定期备份日志文件。
    • 检查日志文件的权限,确保 MySQL 有写权限。
  • 调整日志文件大小限制
  • 调整日志文件大小限制
  • 根据需要调整日志文件大小限制:
  • 根据需要调整日志文件大小限制:

问题:MySQL 执行历史记录过多,占用大量磁盘空间

原因

  • 日志文件未及时清理。
  • 日志文件大小设置不当。

解决方法

  1. 定期清理日志文件
    • 手动删除旧的日志文件。
    • 使用脚本定期清理日志文件,例如:
    • 使用脚本定期清理日志文件,例如:
  • 调整日志文件大小限制
  • 调整日志文件大小限制

参考链接

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

相关·内容

mysql存储过程执行_mysql存储过程不执行

实战mysql存储程序与定时器 存储过程定时器eventprocedure实战 需求:一个庞大的日志表,现每天做定时统计一天的总数,放另一个表中,方便查看,运营。...旧方案:用脚本写好程序,用linux的crontab定时执行。 本文重点,用mysql定时器定时执行存储程序。...执行这个语句之前要先 Sql代码 delimiter $$ 执行完成后再 Sql代码 delimiter ; 用show查看是否已经成功 Sql代码 show procedure status like...‘%%’; 第二步:开启mysql定时器 如果不是on,就执行 Sql代码 set global event_scheduler=1; 不需要重启mysql 会发现mysql多起了一个daemon进程...Enable表示系统将执行这个事件。Disable表示系统不执行该事件。

16.6K20
  • Mysql执行过程

    Mysql 执行流程 大致流程描述: MySQL客户端通过协议将SQL语句发送给MySQL服务器。...如果无法命中缓存,就继续走到分析器的下一步,如果查询命中该缓存时,MySQL会立刻返回结果,跳过了解析、优化和执行阶段 。 不过需要注意的是在mysql的8.0版本以后,缓存被官方删除掉了。...查询优化器 能够进入到优化器阶段表示sql是符合mysql的标准语义规则的并且可以执行的,此阶段主要是进行sql语句的优化,会根据执行计划进行最优的选择,匹配合适的索引,选择最佳的执行方案。...,mysql会计算各个执行方法的最佳时间,最终确定一条执行的sql交给最后的执行器 查询优化器是整个流程中重要的一环。...而update会采用两阶段提交的方式,记录都redolog中 查询执行计划,就是MySQL查询中的执行计划,比如是执行where语句还是from语句,最先执行的总是FROM操作,最后执行的是LIMIT操作

    2.9K20

    MySQL】语句执行分析

    为了验证问题是否出在sql语句,所以用以下方法来分析: 查询SQL执行记录 explain 分析 MySQL 语句执行时间 下面会分别介绍三个方法的开启方法。...key_len 显示MySQL决定使用的键长度。如果键是NULL,则长度为NULL。 ref 显示使用哪个列或常数与key一起从表中选择行。 rows 显示MySQL认为它执行查询时必须检查的行数。...rows显示MySQL认为它执行查询时必须检查的行数。多行之间的数据相乘可以估算要处理的行数。filtered显示了通过条件过滤出的行数的百分比估计值。...MySQL 语句执行时间 show profile 以及show profiles语句可以显示当前会话过程中执行SQL语句的性能信息。...已经是开启状态 执行sql语句后进行分析 执行完后,输入 show profiles;复制代码 即可查看所有的sql的执行时间 ?

    1.7K40

    MySQL执行计划

    比如我执行explain select * from tb_emp;,就会出现如下结果: ? 执行计划 4....执行计划包含的信息: 如上图,执行计划查出来后包含如下信息: id:select 查询的序列号,包含一组数字,表示查询中执行select 子句或表的读取顺序。它的值有三种情况,第一种,id相同。...还是id越大的越先执行,所以还是t3最先执行,然后id相同的从上到下执行,所以接下来是derived2,其实就是temp1,最后才是t2。...包含以下内容: extra 含义 using filesort 说明MySQL会对数据使用一个外部的索引排序,而不是用表内的索引顺序进行读取,这种文件内排序是很费时的。...using temporary MySQL在对查询结果排序时新建了一个临时表处理数据,常见于order by和group by,这种情况性能更差。

    1.1K20

    Appium系列(四十)测试报告支持展示测试用例执行历史记录

    前言 之前的文章呢,我们做了数据的存储,以及如何在测试报告中展示,那么这次我们分享如何将测试用例执行结果的历史记录也展示出来。...正文 我们在执行用例时候,每次执行完毕后,如果没有及时将测试结果备份,那么下次再来执行的时候,就不知道上一次的结果。我们也看不到历史执行中的结果的趋势,有些数据不好分析。...我们在测试用例执行的完毕的时候,我们记录测试结果,然后下次执行的时候,有历史记录我们就读取历史记录即可。 我们用BSTestRunner.py为例去讲解。...默认会返回执行结果的数据。...接下来,就是在实际代码中,执行

    50710

    Mysql系列】(一)MySQL语句执行流程

    执行 mysql执行文件后,会启动一个 MySQL 客户端程序。这个程序是用 C 或 C++编写的,负责与 MySQL 服务器进行通信。...MySQL 服务器接收到 SQL 语句后,会执行相应的操作,比如查询、插入、更新等。 MySQL 服务器执行完 SQL 语句后,会将结果返回给 MySQL 客户端程序。...MySQL 分析器通常提供以下功能: 查询执行计划分析:分析器可以解析和分析数据库查询的执行计划。执行计划描述了 MySQL 查询优化器将如何执行查询,包括使用哪些索引、连接方式、排序方式等。...MySQL 优化器是一个智能的查询执行计划生成器,它会根据查询语句和表的信息,通过优化算法来选择最佳的查询执行策略。...执行器 什么是 MySQL 执行MySQL 执行器(MySQL Executor)是 MySQL 数据库的一个组件,负责执行查询语句并返回结果。

    38830

    深入理解MySQL执行过程及执行顺序

    因为学习和了解MySQL是至关重要的,那么当我们在客户端发起一个SQL到出现详细的查询数据,这其中究竟经历了什么样的过程?MySQL服务端是如何处理请求的,又是如何执行SQL语句的?...MySQL执行过程 MySQL整体的执行过程如下图所示: 连接器 连接器的主要职责就是: 1、负责与客户端的通信,是半双工模式,这就意味着某一固定时刻只能由客户端向服务器请求或者服务器向客户端发送数据...优化器 能够进入到优化器阶段表示SQL是符合MySQL的标准语义规则的并且可以执行的,此阶段主要是进行SQL语句的优化,会根据执行计划进行最优的选择,匹配合适的索引,选择最佳的执行方案。...,MySQL会计算各个执行方法的最佳时间,最终确定一条执行的SQL交给最后的执行器。...总结 本篇博客总结了MySQL执行过程,以及SQL的执行顺序,理解这些有助于我们对SQL语句进行优化,以及明白MySQL中的SQL语句从写出来到最终执行的轨迹,有助于我们对SQL有比较深入和细致的理解

    1.8K20

    mysql 执行死锁原因排查

    今天碰到一次因死锁导致更新操作的sql事务执行时间过长,特将排查过程记录如下: 首先该sql事务的where条件已经命中了主键索引,而且表也不大,故可以排除扫表过慢原因。...trx_wait_started | datetime | YES | | |#事务开始等待的时间 | trx_weight | bigint(21) unsigned | NO | | |# | trx_mysql_thread_id...| | |# 可以通过select * from INNODB_LOCKS a inner join INNODB_TRX b on a.lock_trx_id=b.trx_id and trx_mysql_thread_id...=线程id 来获取该sql的锁状态,线程id可以通过上面的show processlist来获得,执行结果如下: 此时发现,该sql连接确实处于LOCK WAIT锁等待状态 通过select * from...之所以sql为null,是因为该连接已经把sql update操作执行写入缓存中了,但是由于代码bug没有最后commit,导致一直占用着行锁,后续新的连接想写这一行数据却因为一直取不到行锁而处于长时间的等待状态

    4.3K00

    MySQL执行计划解读

    EXPLAIN EXTENDED SELECT …… 将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句 2....EXPLAIN PARTITIONS SELECT …… 用于分区表的EXPLAIN 执行计划包含的信息 ? id 包含一组数字,表示查询中执行select子句或操作表的顺序 ?...id相同,执行顺序由上至下 ? 如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行 ?...system是const类型的特例,当查询的表只有一行的情况下, 使用system g.NULL:MySQL在优化过程中分解语句,执行时甚至不用访问表或索引 ?...MySQL执行计划的局限 •EXPLAIN不会告诉你关于触发器、存储过程的信息或用户自定义函数对查询的影响情况 •EXPLAIN不考虑各种Cache •EXPLAIN不能显示MySQL执行查询时所作的优化工作

    1.4K10

    MySQL架构与执行流程

    MySQL语句的执行流程   下图是一条查询sql语句的执行流程: ? 1.1 通信协议   我们的程序或者工具要操作数据库,第一步要做什么事情?当然是跟数据库建立连接。...但是如果有这么多种执行方式,这些执行方式怎么得到的?   最终选择哪一种去执行?根据什么判断标准去选择?这个就是 MySQL 的查询优化器的模块(Optimizer)。...当然,这个执行计划是不是一定是最优的执行计划呢?不一定,因为 MySQL 也有可 能覆盖不到所有的执行计划。我们怎么查看 MySQL执行计划呢?比如多张表关联查询,先查询哪张表?...在执行查询的时候可能用到哪些索引,实际上用到了什么索引? MySQL 提供了一个执行计划的工具。我们在 SQL 语句前面加上 EXPLAIN,就可以看到执行计划的信息。...然后就是优化器,MySQL 底层会根据一定的规则对我们的 SQL 语句进行优化,最后再交给执行器去执行

    79220

    MySQL查询执行的过程

    mySQL查询执行的过程 01 查询的流程图 当我们希望MySQL能够以更高的性能进行查询时,弄清楚MySQL中是如何优化和执行查询的就显得很有必要,这里,先搬出来一张图镇楼: ?...这张图写清楚了一个查询在MySQL中的执行过程: 1、客户端发送一条查询给服务器。 2、服务器先检查查询缓存,如果命中了缓存,则会进行权限校验,权限校验通过,直接返回结果。...3、如果没有命中缓存,则进行SQL解析、预处理、再由优化器进行查询优化,计算各项查询方法的成本、生成对应的执行计划。 4、MySQL根据执行计划,调用存储引擎的API来执行查询。...在我们查询的过程中,MySQL会维护一个查询状态,也就是我们使用show processlist来进行查看的时候的一些状态值,例如: sleep,说明线程正在等待客户端发送新的请求 query,线程正在执行查询或者正在将结果发送给客户端...04 查询的优化处理 查询优化处理包含多个部分,例如解析SQL、预处理、优化SQL执行计划等等,其中: 语法解析器是专门的解析MySQL语法的,一旦发现错误的关键字、数据类型、关键字顺序、字段和数值顺序等等

    2K10
    领券