mysql日志
- redo log是物理的,binlog是逻辑的;
- 现在由于redo是属于InnoDB引擎,所以必须要有binlog,因为你可以使用别的引擎保证数据库的一致性,必须要保证2份日志一致,使用的2阶段式提交,其实感觉像事务,不是成功就是失败,不能让中间环节出现。
- redolog:循环写,写到文件尾部又从头开始写,有两个指针write pos是当前写入的位置,checkpoint是当前需要擦除的位置,当redolog的日志刷入磁盘时,checkpoint就需要+1,checkpoint永远不能追上writepos,当赶上时就要暂停等待刷盘。
- binlog:追加写,不会循环,会记录sql的每次操作。可以用来同步数据。