INSERT BUFFER AND ADAPTIVE HASH INDEX - xiaoboluo768/qianjinliangfang GitHub Wiki
- 第八段信息
- 这部分显示了insert buffer和adaptive hash index两个部分的结构的状态
-------------------------------------
INSERT BUFFER AND ADAPTIVE HASH INDEX
-------------------------------------
# 这行显示了关于size(size 12代表了已经合并记录页的数量)、free list(代表了插入缓冲中空闲列表长度)和seg size大小\
(seg size 27572显示了当前insert buffer的长度,大小为27572*16K=440M左右)的信息。18074934 merges代表合并插入的次数
Ibuf: size 12, free list len 27559, seg size 27572, 18074934 merges
# 这个标签下的一行信息insert,delete mark,delete分别表示merge操作合并了多少个insert buffer,delete buffer,purge buffer
merged operations:
insert 81340470, delete mark 8893610, delete 818579
discarded operations: #这个标签下的一行信息表示当change buffer发生merge时表已经被删除了,就不需要再将记录合并到辅助索引中了
insert 0, delete mark 0, delete 0
# 这行显示了自使用哈希索引的状态,其中,Hash table size 87709057表示AHI的大小,node heap has 10228 buffer(s)表示AHI的使用情况
Hash table size 87709057, node heap has 10228 buffer(s)
# 这行显示了在头部第1部分提及的时间内Innodb每秒完成了多少哈希索引操作,1741.05 hash searches/s表示每秒使用AHI搜索的情况,\
539.48 non-hash searches/s表示每秒没有使用AHI搜索的情况(因为哈希索引只能用于等值查询,而范围查询,模糊查询是不能使用哈希索引的。),\
通过hash searches: non-hash searches的比例大概可以了解使用哈希索引后的效率,哈希索引查找与非哈希索引查找的比例仅供参考,\
自适应哈希索引无法配置,但是可以通过innodb_adaptive_hash_index=ON|OFF参数来选择是否需要这个特性。
1741.05 hash searches/s, 539.48 non-hash searches/s
# innodb从1.0.x开始引入change buffer,可以视为insert buffer的升级,从这个版本开始,innodb可以对DML操作(insert,delete,update)\
都进行缓冲,他们分别是insert buffer,delete buffer,purge buffer,当然和之前insert buffer一样,\
change buffer适用对象仍然是非唯一索引的辅助索引,因为没有update buffer,所以对一条记录进行update的操作可以分为两个过程:
# A:将记录标记为删除
# B:真正将记录删除
#因此,delete buffer对应update 操作的第一个过程,即将记录标记为删除,purge buffer对应update的第二个过程,即将记录真正地删除
上一篇:FILE IO | 下一篇:LOG