Innodb特性以及实现原理

Innodb五大特性

1.insert buffer
2.double write
3.自适应哈希索引
4.异步io
5.邻接页刷新

1.insert buffer(change buffer)

作用:将非聚集索引上的DML操作从随机IO变成顺序IO,减少IO次数,提高效率

insert buffer使用的条件:

  • 索引是辅助索引
  • 索引是非唯一索引(如果是唯一索引,每次变更都要判断索引的唯一性,又产生了离散读取,使insert buffer失去了意义)

具体查看

show engines inndo status 过滤
   Ibuf: size 1, free list len 14316, seg size 14318(插入缓冲区的总大小 页的数量X16KB), 466174 merges(已经合并的meregs数量)
   merged operations: insert 547399(插入记录被merge的次数), delete mark 42008(删除操作被merge的次数), delete 32055(更新操作被merge了多少次)
   如果merges/merged的值等于3/1,则代表插入缓冲对于非聚集索引页的IO请求大约降低了3倍

  change buffer

insert buffer的升级版,可以对DML都进行缓冲,insert ,delete,update,他们分别对应:insert buffer,delete buffer,purge buffer

对应参数

innodb_change_buffering:控制开启哪种buffer,可选值为:inserts,deletes,purgees,changes,all,none.

innodb_change_buffer_max_size:控制change buffer最大使用内存数量,默认25(内存的1/4)

猜你喜欢

转载自www.cnblogs.com/asea123/p/12318056.html