美文网首页
change buffer

change buffer

作者: 剑客kb | 来源:发表于2019-05-11 09:30 被阅读0次

    change buffer是一个特殊的数据结构,当二级索引的页面不在缓冲池中,change buffer会缓存对二级索引的数据操作(update、insert、delete)。主要是减少磁盘的随机I/O.(仅支持二级索引,不支持聚集索引、全文索引、空间索引)
    下面几种情况会导致purge(清除)change buffer的操作

    • 用户线程选择二级索引进行数据查询,这时候必须要读入二级索引页,相应的ibuf entry需要merge到Page中。之后该page会被刷新到磁盘
    • 当系统空闲或者slow shutdown时,后台master线程发起merge
    • change buffer 页面没有空间了。
      change buffer默认占有buffer pool内存的25%,最大为50%。

    对于唯一二级索引(unique key),由于索引记录具有唯一性,因此无法缓存插入操作,但可以缓存删除操作;

    如果索引包含降序索引列或主键包含降序索引列,则辅助索引不支持change buffer(\color{red}{没理解官网这句话的意思,为啥不支持降序,升序也不支持吗?}

    change buffer可以单独配置对某些操作进行缓存,操作包含:all、none、inserts、deletes、changes、purges(后台物理删除的操作)

    参考:https://dev.mysql.com/doc/refman/5.7/en/innodb-change-buffer.html

    相关文章

      网友评论

          本文标题:change buffer

          本文链接:https://www.haomeiwen.com/subject/doxuoqtx.html