日志

  1. log_error(错误日志)

    • 用于记录 MySQL 运行过程中的错误信息,如,无法加载 MySQL数据库的数据文件,或权限不正确等都会被记录在此。
    • 默认情况下,错误日志是开启的,且无法禁止.
    • 默认情况下,错误日志存储在数据库的数据文件目录下,名称为hostname.err,其中hostname为服务器主机名.
    • 在MySQL5.5.7之后,不允许删除错误日志,只能使用重命名原来的日志文件,再手动冲洗日志创建一个新的.命令如下:
          mv hostname.err hostname.err.oldbak
      mysqladmin flush-logs
  2. general_log 查询日志(通用日志)
    • 查询日志实际上记录了数据库执行的所有命令,不管语句是否正确.
    • 查询日志的作用是帮助我们分析哪些语句执行密集,执行密集的select语句对应的数据是否能够被缓存,同时也可以帮助我们分析问题.
    • 查询日志默认是关闭的,可以通过以下命令来开启查询日志:
        set global general_log=1 set global logoutput='tabel'
    --1为开启查询日志,0为关闭查询日志,这个命令设置后立即生效,不用重启MySQL.
  3. query log(慢查询日志)
    • 慢查询会导致CPU/IOPS/内存消耗过高,当数据库遇到性能瓶颈时,大部分时间都是由于慢查询导致的.开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,之后运维人员通过定位分析,就能够很好的优化数据库功能.
    • 默认情况下, 慢查询是不开启的,只有手动开启了,慢查询才会被记录到慢查询日志中.
    • 开启方式1: 临时开启
        set global slow_query_log='ON'
    -- 只对当前数据库有效,且如果MySQL重启后就会失效.
    • 开启方式2: 永久开启

      如果要永久生效,就要修改配置文件my.cnf,设置slow-query-log=1并重启MySQL.
  4. redo log(重做日志) 具体详情
    • 为了避免数据写入时,因IO操作太频繁出现性能问题,MySQL采用了先将数据写入内存,再批量刷入磁盘的机制.
    • 相关设置
        innodb_flush_log_at_trx_commit 变量取值012,默认为1,三种情况用来控制commit动作是否将log buffer刷入到磁盘里.

innodb_flush_log_at_timeout 秒数,表示刷日志的频率.

```

5. undo log(回滚日志)

- 用于存储日志被修改前的值,从而保证如果修改如果出现异常,可以使用undo log日志来实现回滚操作.

- undo log是逻辑日志,可以认为当delete一条记录时,会记录一条对应的insert记录,当执行rollback的时候,可以从undo log中的逻辑记录中读取相应的内容进行回滚.

6. bin log(二进制日志)

- 一个二进制文件,记录所有数据库表结构变更及表数据修改,及语句发生时间,执行时长,操作数据等其他额外信息.但它不记录SELECT/SHOW等不修改数据的SQL语句.


MySQL第五天——日志的更多相关文章

  1. MySQL系列(五)--二进制日志对主从复制的影响

    MySQL复制是基于主库上的二进制日志来完成,复制是异步的,可能存在延迟 MySQL日志分为: 1.服务层日志:二进制日志.通用日志.慢查日志 2.存储引擎层日志:innodb中重做日志和回滚日志 二 ...

  2. 我的MYSQL学习心得(十五) 日志

    我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  3. 别人的的MYSQL学习心得(十五) 日志

    我的MYSQL学习心得(十五) 日志 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  4. Mysql: mysqlbinlog命令查看日志文件

    想查看mysql的binlog文件,但是裸的binlog文件是无法直视的,mysqlbinlog这个工具是用来查看binlog文件内容的(使用方式man mysqlbinlog查看),但是使用mysq ...

  5. MySql(五)SQL优化-优化SQL语句的一般步骤

    MySql(五)SQL优化-优化SQL语句的一般步骤 一.优化SQL语句的一般步骤 1.1 通过show status命令了解各种SQL的执行频率 1.2 定位执行效率较低的SQL语句 1.3 通过e ...

  6. mysql开启慢查询日志及查询--windows

    MySQL慢查询配置 1. 慢查询有什么用? 它能记录下所有执行超过long_query_time时间的SQL语句, 帮你找到执行慢的SQL, 方便我们对这些SQL进行优化. 2. 如何开启慢查询? ...

  7. PHP慢脚本日志和Mysql的慢查询日志

    1.PHP慢脚本日志 间歇性的502,是后端 PHP-FPM 不可用造成的,间歇性的502一般认为是由于 PHP-FPM 进程重启造成的. 在 PHP-FPM 的子进程数目超过的配置中的数量时候,会出 ...

  8. Mysql数据库之Binlog日志使用总结

    binlog二进制日志对于mysql数据库的重要性有多大,在此就不多说了.下面根据本人的日常操作经历,并结合网上参考资料,对binlog日志使用做一梳理: 一.binlog日志介绍1)什么是binlo ...

  9. PHP慢脚本日志和Mysql的慢查询日志(转)

      1.PHP慢脚本日志 间歇性的502,是后端 PHP-FPM 不可用造成的,间歇性的502一般认为是由于 PHP-FPM 进程重启造成的. 在 PHP-FPM 的子进程数目超过的配置中的数量时候, ...

随机推荐

  1. POJ 3046 Ant Counting ( 多重集组合数 && 经典DP )

    题意 : 有 n 种蚂蚁,第 i 种蚂蚁有ai个,一共有 A 个蚂蚁.不同类别的蚂蚁可以相互区分,但同种类别的蚂蚁不能相互区别.从这些蚂蚁中分别取出S,S+1...B个,一共有多少种取法. 分析 :  ...

  2. HDU 2037(贪心)

    “今年暑假不AC?” “是的.” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了.  ...

  3. HDU1232 畅通工程(并查集)

    #include<iostream> using namespace std; ]; int findx(int x) { while(num[x]!=x)x=num[x]; return ...

  4. input el-input 只能输入正整数验证

    字母e在js中属于数字,所以一般的正则匹配 \d 是拦不住字母e 的 正确写法为: onKeypress="return (/[\d]/.test(String.fromCharCode(e ...

  5. Elasticsearch结构化搜索与查询

    Elasticsearch 的功能之一就是搜索,搜索主要分为两种类型,结构化搜索和全文搜索.结构化搜索是指有关查询那些具有内在结构数据的过程.比如日期.时间和数字都是结构化的:它们有精确的格式,我们可 ...

  6. 关于VMware 15搭建MacOS 10.14后无法播放在线视频和客户端视频的问题

    最近在自己的电脑上搭建了MacOS10.14系统,搭建是成功了,但是发现一个很坑的事,看视频发现黑屏.就是那种只有声音,没有视频的问题,在多个浏览器上和客户端都是一样的.百度了下,总结有2种可能,一是 ...

  7. [CSP-S模拟测试]:位运算(数学)

    题目传送门(内部题72) 输入格式 输入文件$bit.in$ 每个输入文件包含$T$组测试数据.输入文件的第一行为一个整数$T$,表示数据组数.接下来$T$行,每行表示一组测试数据每组测试数据包括三个 ...

  8. 大数据笔记(十九)——数据采集引擎Sqoop和Flume安装测试详解

    一.Sqoop数据采集引擎 采集关系型数据库中的数据 用在离线计算的应用中 强调:批量 (1)数据交换引擎: RDBMS <---> Sqoop <---> HDFS.HBas ...

  9. Customizable Route Planning

    w https://www.microsoft.com/en-us/research/wp-content/uploads/2011/05/crp-sea.pdf 1 Introduction The ...

  10. 小程序框架MpVue踩坑日记(二)

    数据嵌套超过三层或者等于三层的时候 父组件传值给子组件后,如果子组件内的值需要改变 通过this.emit()传值后,父组件的值虽然会改变,但是视图并不会重新渲染 原因就是数据嵌套太多,没有触发ren ...