数据库引擎的区别

2019-12-11  本文已影响0人  就这些吗
Innodb MyISAM
支持事务 不支持事务
支持外键 不支持外键
行级锁 表级锁
能崩溃恢复 不能崩溃恢复
B+树聚簇索引 B+树非聚簇索引
实现了MVCC 没有实现MVCC

Innodb怎么保证崩溃恢复的?

redolog和undolog,redo日志记录了事务的操作(也是事务持久化的保证,数据库断电后还可以通过redolog进行事务),undo日志用来记录事务发生前的数据版本(也是用来多版本并发控制读的保证)多版本并发控制。
而用来主从复制的binlog的创建在引擎层面之上,与引擎无关。

什么是MVCC?

多版本并发控制
MVCC 使用了一种不同的手段,每个连接到数据库的读者,在某个瞬间看到的是数据库的一个快照,写者写操作造成的变化在写操作完成之前(或者数据库事务提交之前)对于其他的读者来说是不可见的。
当一个 MVCC 数据库需要更一个一条数据记录的时候,它不会直接用新数据覆盖旧数据,而是将旧数据标记为过时(obsolete)并在别处增加新版本的数据。这样就会有存储多个版本的数据,但是只有一个是最新的。

上一篇 下一篇

猜你喜欢

热点阅读