1.修改数据,
先从硬盘读数据到内存,
然后修改这行数据,
写如新行,更新到内存,
然后写入redolog,
成功后写入binglog,
提交事务(提交的数据不会马上保存到硬盘中,如果你修改的数据还未保存到硬盘中,此时断电,重启,你的redolog保证你的数据不会丢失) 有个问题 因为redlong会存所有的记录 就算断电 binglog就够了, 还要 redlong干什么呢?
解答:
第一,redlong是循环插入,当数据在redlong中插满,就会把一部分数据插入硬盘,然后删除,新的数据继续插入。并且,redlog是记录的 修改记录。
第二,binglog存的是所有的执行语句,按照先后顺序,依次插入,记录的是所有的数据执行sql.
我对redolog的理解就是, 插入数据的时候 ,先写到redolog,因为redolog是有空间限制的,如果redolog有空余继续写入,当redolog没有空间了,会把redolog数据先存到硬盘中,然后清除redolog,然后再继续写入redolog中。 当数据库宕机了,redolog有之前的数据,会从redolog中读取,binglog 也有之前的数据, 但是binglog侧重于数据备份,记录的是所有数据的执行sql。