浅谈MySQL存储引擎

2022-03-08  本文已影响0人  程序员小韩

MySQL 的存储引擎是插件式的,不同的存储引擎有不同的锁机制,其中我们最常到的两个存储引擎为 MyISAM 与 InnoDB。

   MyISAM 与 InnoDB的区别:


 MyISAM

    InnoDB: 

    下面这个图可能更直观些:


MyISAM 与 InnoDB的索引实现


        MyISAM 的索引是非聚簇索引。索引文件和数据文件是分离的,底层是B+树作为索引结构,叶子节点data存放的是数据记录指针的地址,这种索引结构为非聚簇索引。


        myisam中索引检索的算法为首先按照B+Tree搜索算法搜索索引,如果指定的Key存在,则取出其data域的值,然后以data域的值为地址,读取相应数据记录。结构如下图:


        InnoDB 的索引是聚簇索引。与MyISAM 的区别就是InnoDB的数据文件就是索引文件,叶子节点data存放的是数据的整条记录。这种索引结构为聚簇索引。


结构如下图:

        因为InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键(MyISAM可以没有)



MyISAM 与 InnoDB的区别适用场景:


MyISAM 适合的场景为:

InnoDB 适合的场景为:


……………分割线……………

不积跬步,无以至千里;不积小流,无以成江海。

关注我,每天分享一些小知识点。分享自己的小心得,包含但不限于初、中、高级面试题呦!!!


我都墨迹这么半天了 ,你不点关注,不点赞,不收藏,还不转发,你想干啥!!!!


上一篇 下一篇

猜你喜欢

热点阅读