Mysql关键特性-插入缓冲 (Insert Buffer)

1.什么是插入缓冲 (Insert Buffer

insert buffer是一种特殊的数据结构(B+ tree)并不是缓存的一部分,而是物理页,这里讲的缓冲是针对的非聚集索引并且索引不是唯一的。 对于非聚集索引的插入或者更新操作,不是每一次直接插入到索引页中,而是先判断插入的非聚集索引页是否在缓冲池中,若在,则直接插入;若不在,则先放入Insert Buffer对象中,最后再以一定的频率进行Insert Bufffer和辅助索引页子节点中的merge(合并)操作。

2. insert buffer的缺点

①.可能导致数据库宕机后实例恢复时间变长。如果应用程序执行大量的插入和更新操作,且涉及非唯一的聚集索引,一旦出现宕机,这时就有大量内存中的插入缓冲区数据没有合并至索引页中,导致实例恢复时间会很长

② 在写密集的情况下,插入缓冲会占用更多的缓冲池内存(innodb_buffer_pool), 默认情况可以最大占用1/2

3.查看insert buffer

命令 show engine innodb status

 seg size显示了当前Insert buffer的大小为2 * 16kb

 free list len代表了空闲列表的长度,(缓冲区内可用的页数)

 size代表了已经合并记录页的数量。

 Inserts 代表了插入的记录数量; merged recs代表了合并的插入记录数量;

merged operations - insert: The number of inserted records merged.merged插入的记录数

merged operations - delete mark: The number of deleted records merged.merged删除记录数

merged operations - delete: The number of purge records merged.merged清除记录数

discarded operations - insert: The number of insert merge operations discarded. 丢弃的插入合并操作数

discarded operations - delete mark: The number of delete merge operations discarded. 丢弃的删除合并操作数

discarded operations - delete: The number of purge merge operations discarded. 丢弃的清除合并操作数。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值