美文网首页
MySQL的两种常用存储引擎的概览

MySQL的两种常用存储引擎的概览

作者: KillerManA | 来源:发表于2016-06-19 10:00 被阅读62次

    InnoDB是MySQL的默认存储引擎,被设计用来处理大量的短期(short-lived)事务,短期事务大部分情况下都会正常提交,很少会被回滚。其次,其性能和自动崩溃回复特性,使得其在非事务型存储的需求中也非常流行。如果想学习存储引擎,这是一个非常非常值得学习的引擎。
    下面我们来说一下这个引擎的概览,这对我们理解引擎很有帮助。

    • InnoDB的数据存储在表空间(tableplace)中,表空间是有其管理的一个黑盒子,由一系列的数据文件组成.

    • InnoDB采用MVCC来支持高并发,并且实现了四个标准的隔离等级,其默认级别是可重复读, 并且通过间隙锁(next-key locking)策略防止幻读的出现,间隙锁使得InnoDB不仅仅查询涉及到的行,而且还会对索引中的间隙进行锁定,以防止幻影行的出现。

    • InnoDB表是基于聚簇索引建立的,其中聚簇索引对主键查询有很高的性能,不过它的二级索引(非主键索引)中必须包含主键列,所以如果主键列很大的话,其它的所有索引就会很大。因此,若表上的索引较多的话,主键应当尽可能的小。

    • MyISAM索引不支持事务和行级锁,但是若只是只读数据,或者表比较小,那么其性能还是很高的。

    • MyISAM存储时,数据文件和索引文件分别.YMD和.YMI文件存储。

    简单总结,MySQL拥有分层的架构,上层是服务层的服务和查询执行引擎,下层则是存储引擎,如果可以理解存储引擎和服务层之间如何通过API进行来回交互,那么就能抓住MySQL的核心基础架构的精髓。(路漫漫其修远兮,吾将上下而求索~)

    相关文章

      网友评论

          本文标题:MySQL的两种常用存储引擎的概览

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