Insert Buffer
- 1.针对于辅助非唯一索引,其插入是随机IO,因此暂时先不插入而是写入到insert buffer中
- 2.然后等到聚集一批插入操作,按照索引页进行merge 可以提高插入效率。
- 3.insert buffer 包含在缓冲池和物理页
change buffer-Delete buffer,purge buffer
- 1.类似于Insert Buffer,依然只能适用于非唯一的辅助索引
Insert Buffer的内部实现
- 1.整个服务器只有一个B+树,该树是专门给InsertBuffer的,其他的Change Buffer 应该也是类似
- 2.该树存在共享表空间,叶子节点存放的是search key=space ID(表空间id)+marker(兼容作用)+offset(表示数据库中的页位置)
- 3.一个辅助索引插入到页时候,如果页不在缓冲池,则从缓冲池取出来,然后构建search key,将记录插入到insertBuffer的B+树的叶子节点中
- 4.当辅助索引被读取缓冲池,或者insertbuffer bitmap 页追逐到该辅助索引页无可用空间,master thred。这三种情况 insertbuffer 才会merge数据到真正的辅助索引