31、事务怎么回滚(下)

你好,我是俊达。 我们接着上一讲,继续介绍Undo。 Undo里的链表结构Undo里面,存在着好几个链表结构,包括Undo页面链表、Undo日志头链表、Undo记录链表。 Undo段页面链表Undo段中的页面组成一个双向链表。开始时,Undo段只有1...

MySQL运维实战课

30、事务怎么回滚(上)

你好,我是俊达。 事务是关系型数据库的核心功能,具有ACID的特征。一个事务中的修改,要么全部生效,要么全部不生效,即使数据库异常崩溃,也不会违反事务的ACID属性。 上一讲中我们介绍了用来保证对数据库的修改都不丢的Redo机制。这一讲,我们来看一下...

MySQL运维实战课

29、数据都在内存里修改,服务器或数据库宕机会丢数据吗

你好,我是俊达。 InnoDB使用REDO和UNDO来实现事务的ACID属性,保障数据不丢。事务修改缓存页里的数据时,会生成UNDO和REDO日志,事务提交时,虽然缓存页没有实时刷新,但是会确保REDO日志已经完成持久化。 下面是REDO和UNDO机...

MySQL运维实战课

28、InnoDB Buffer Pool如何提高数据库性能(下)

你好,我是俊达。 上一讲的思考题中,我留了一个问题,就是删除表或索引时,表或索引已经缓存在Buffer Pool中的数据要怎么处理。实际上处理的方式跟表的类型(是普通表还是临时表,是否使用per-table)以及操作类型有关,还跟MySQL的版本有关...

MySQL运维实战课

27、InnoDB Buffer Pool 如何提高数据库性能(上)

你好,我是俊达。 从前两讲中,我们知道了InnoDB表和索引的物理存储格式。执行Select语句的时候,最终会从ibd文件中获取数据,执行Insert/Update/Delete语句的时候,最终会将数据写入到ibd文件。读取或修改...

MySQL运维实战课

26、数据库无法启动,如何读取InnoDB文件中的数据(下)

你好,我是俊达 这一讲中,我们接着上一讲的内容,介绍InnoDB中B+树的物理结构,以及InnoDB管理数据文件的一些数据结构。 先创建一个测试表,写入一些数据。 123456789101112131415CREATE TABLE t_btree (...

MySQL运维实战课