B树:

每个节点都存储key和data,所有节点组成这颗树,并且叶子节点指针为NUll

B树与B+树的区别

B+树

只有叶子节点存储data,叶子节点包含了这棵树的所有键值对,叶子节点不存储指针。

B树与B+树的区别

B树不管是叶子节点还是非叶子节点,都会保存数据,这样导致在非叶子节点中能保存的指针数量变少。指针少的情况下要保存大量的数据,只能增加树的高度,导致IO操作变多,查询性能降低。

在MySQL中,最常用的两个存储引擎是MyISAM和InnoDB,他们对索引的实现方式是不一样的。

MyISAM:

data存的是数据地址。索引是索引,数据是数据。索引放在XX.MYI文件中,数据存放在XX.MYD中,所以也叫非聚集索引。

InnoDB:

data存的是数据本身。索引也是数据。数据和索引存在一个XX.IDB文件中,所以也叫聚集索引。

MyISAM是非事务安全的,而InnoDB是事务安全的

MyISAM锁的粒度的表级的,而InnoDB支持行级锁

MyISAM支持全文类型索引,而InnoDB不支持全文索引

MyISAM相对简单,效率上要优于InnoDB,小型应用可以考虑使用MyISAM

MyISAM表保存成文件形式,跨平台使用更加方便

MyISAM管理非事务表,提供高速存储和检索以及全文搜索能力,如果在应用中执行大量的select操作可选择

InnoDB用于事务处理,具有ACID事务支持等特性,如果在应用中执行大量insert和update操作,可选择

推荐看过的一篇博客,关于讲解mysql中两种存储引擎的:

https://www.cnblogs.com/leedaily/p/8378779.html

相关文章:

  • 2021-05-21
  • 2022-01-06
猜你喜欢
  • 2021-10-09
  • 2022-12-23
  • 2022-01-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案