• MySQL第五天——日志



    日志

    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语句.


  • 相关阅读:
    安装JDK,如何配置PATH,如何配置CLASSPATH
    存储过程笔记
    用BeanFactoryAware接口,用BEAN的名称来获取BEAN对象
    静态工厂实例代码
    setTimeout 和 setInterval 的区别
    Spring Autowire自动装配
    动态工厂模式代码实例
    JS处理回车事件
    不错的Spring学习笔记(转)
    单例模式要点
  • 原文地址:https://www.cnblogs.com/sweetXiaoma/p/12010942.html
Copyright © 2020-2023  润新知