DML对innodb索引的影响

首先需要了解一下innodb索引结构,关键下面几点:
1,索引结构是B+tree;
2,主键索引的索引结构和数据一起,即数据放到主键索引B+tree的叶子节点中;
3,辅助索引的索引结构也是B+tree,但叶子节点存储关键字和对应的主键,不直接存储数据;


基于前面三点,下面我们重点分析一下DML操作对innodb 索引的影响:
1,innser操作
   在主键索引clusterd b+tree上插入数据;
   在每个辅助索引secondery b+tree上插入主键;


2,delete操作
   在主键索引clusterd b+tree上删除数据;
   在每个辅助索引secondery b+tree上删除主键;


3,主键update操作
   在主键索引clusterd b+tree上删除原有的数据;
   在主键索引clusterd b+tree上插入新的数据;
   在每个辅助索引secondery b+tree上删除之前的主键;
   在每个辅助索引secondery b+tree上插入新的主键;


4,辅助索引update操作
   在主键索引clusterd b+tree上更新数据;(只需更新对应的叶子的数据部分,主键索引结构记录无需变更)
   在每个辅助索引secondery b+tree上删除原先的记录;(辅助索引发生变化,原先的记录要先删除,重新插入到B+树中)
   在每个辅助索引secondery b+tree上插入原先的记录;(主键不变化,即辅助索引结构记录的叶子数据不变)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值