Myql几种日志
你知道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
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13