美文网首页
数据库引擎的区别

数据库引擎的区别

作者: 就这些吗 | 来源:发表于2019-12-11 23:11 被阅读0次
    Innodb MyISAM
    支持事务 不支持事务
    支持外键 不支持外键
    行级锁 表级锁
    能崩溃恢复 不能崩溃恢复
    B+树聚簇索引 B+树非聚簇索引
    实现了MVCC 没有实现MVCC

    Innodb怎么保证崩溃恢复的?

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

    什么是MVCC?

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

    相关文章

      网友评论

          本文标题:数据库引擎的区别

          本文链接:https://www.haomeiwen.com/subject/uzbjwctx.html