总体来说, MySQL 通过 change buffer (内存操作)和 redo log (操作记录被顺序写入硬盘)减少对硬盘的随机读写,提高效率,节省IO资源.
redo log和bin log的区别
1、redo log是物理日志:数据最终被做了什么修改;bin log是逻辑日志:如具体的sql语句。
2、redo log用于保证数据库crash-safe,有固定大小,会被循环覆盖写入;bin log用于恢复数据库,是追加写入。
3、使用bin log恢复数据库的方法:先将数据库恢复到删表等误操作前的最新备份,再重放bin log至误操作前。
类比于redis的两种持久化方式
RDB机制,类比于redo log:都是物理日志,存储的是最终结果。
AOF机制,类比于bin log:都是逻辑日志,追加写入操作语句。