MyISAM和InnoDB执行引擎的区别,为什么MyISAM查询效率高,B树和B+树的区别

1. MyISAM和InnoDB的区别

①MyISAM查询效率高,InnoDB查询效率低;

②MyISAM不支持事务和外键,而InnoDB支持;

③MyISAM是非聚簇索引(索引的叶子节点存储的是数据的物理位置),InnoDB是聚簇索引(索引的叶子节点存储的就是数据);

④InnoDB支持行级锁。

⑤MyISAM对应着3个物理文件:.frm表结构文件,.myi表索引文件,.myd表数据文件。而InnoDB对应2个物理文件:.frm表结构文件,.ibd表数据和索引文件

2. 为什么MyISAM查询效率高?

①InnoDB寻址要映射到块,然后到行;MyISAM直接是文件的Offset。

②因为InnoDB支持事务,涉及多版本并发控制(MVCC),而且支持行级锁,所以会损失一定的性能。

③InnoDB的非聚集索引(叶子节点存储的是主键值,然后通过主键进行回表操作得到主键索引的聚集索引得到最终的数据)存在回表操作。

3. 数据库索引

3.1 什么是数据库索引:为了方便数据库快速查询、更新的手段,使用B+树实现。

3.2 B树和B+树的区别:B树是每个节点有多个子节点,不像二叉树,最多只有两个子节点;而且B树的所有叶子节点在同一层,而2-3树是最简单的B树,由二节点和三节点组成,二节点和三节点的要么没有子节点,要么有两个或三个子节点。然后B+树在B树的基础上进行了优化,B+树非叶子节点是叶子节点的索引,只有叶子节点通过链表存储数据。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值