美文网首页
【MySql常用的存储引擎】

【MySql常用的存储引擎】

作者: 热血趁年华 | 来源:发表于2018-07-17 00:28 被阅读0次

    前言

    mysql中的存储引擎比较多,但是常用的也就两个InnoDB和MyISAM

    InnoDB

    支持事务(提交、回滚),行级锁(对索引的行级锁,如果没有命中索引,将使用表级锁),外键约束,主键自增,并且灾难恢复性比较好,提供了对数据和索引的缓存,但是5.6版本之前不提供全文检索,并且不存储行数,所以在select count(*)操作的时候需要对全表进行扫描。mysql 5.5版本开始,innodb是mysql默认的存储引擎。所以频繁的插入和更新操作可以选择该引擎。

    innoDB存储引擎的索引默认使用的是B+树,并且自动在内存中的“自适应哈希索引缓冲区”建立哈希索引

    MyISAM

    表级锁,不支持事务,但支持全文检索,主机宕机后容易出现表损坏,存储表的行数。

    为什么要用索引?

    严格来说B+树索引是有序的,所以通过索引查询数据不需要遍历数据,速度比较快,hash索引通过对key的哈希计算,来查找数据,速度也是比较快的。

    B+树索引和哈希索引的区别?

    1.B+树索引是一个平衡的多叉树结构,是有序的,查询的时候需要从跟节点开始逐级查询;哈希索引是通过对key的哈希运算来查询数据

    2.等值查询的时候,哈希索引有很大的优势,但是在重复值比较多的情况下,效率会比较低,而且不支持范围查询,不支持联合索引的左前缀匹配规则。

    相关文章

      网友评论

          本文标题:【MySql常用的存储引擎】

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