• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Myql几种日志

武飞扬头像
披荆斩棘的小哥哥
帮助2

你知道Mysql有几种日志,这几种日志分别有什么用处呢?

Mysql有以下几种日志

 redo log、undo log、bin log、relay log、error log、slow query log、general log

重点讨论一下redo log、undo log、bin log、relay log

redo log(重做日志)用来实现事物持久性。MySQL实例挂了或宕机了,重启时,InnoDB存储引擎会使用redo log恢复数据,保证数据的持久性与完整性。  MySQL中数据的读取是以页为单位,当你查询数据的时候,它会从硬盘把一页(16KB)的数据加载出来,放入到Buffer Pool中。 后续的查询都是先从Buffer Pool中找,没有命中再去硬盘加载,减少硬盘IO开销,提升性能。 更新表数据的时候,也是如此,发现Buffer Pool里存在要更新的数据,就直接在Buffer Pool里更新。 然后会把“在某个数据页上做了什么修改”记录到重做日志缓存(redo log buffer)里,接着刷盘到redo log文件里。然后才更新到磁盘上。这里大家应该很容易想到,如果在数据写入到磁盘之前数据库挂了那么岂不是数据就丢失了,那么redo log就是为了解决这个问题。

undo log(回滚日志)用来实现事物原子性。它可以用于回滚事务和实现MVCC在执行事务的过程中,将回滚所需的信息都记录在undolog中,回滚时根据undolog中的数据做相反的操作。

bin log(二进制日志),relay log(中继日志),用来实现主从赋值从而达到备份恢复或者。数据库读写分离

主从复制的原理

1、主库的写操作(update、insert、delete)被记录binlog

2、从库发起连接,连接到主库。 

3、主库创建一个 binlog dump thread,把 bin log 的内容发送到从库。

4、 从库创建一个 I/O 线程,读取主库传过来的 bin log 内容并写到 relay log 

5、从库创建一个SQL线程,从 relay log 里面读取内容,将更新内容写入到 数据里

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbbjgh
系列文章
更多 icon
同类精品
更多 icon
继续加载