非唯一索引页上的Change Buffer是否仅适用?

2026-05-05 22:111阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1601个文字,预计阅读时间需要7分钟。

非唯一索引页上的Change Buffer是否仅适用?

最近在文章中看到:change buffer 只适用于非唯一索引页。 这个观点是错误的。先来看看官方文档对 change buffer 的介绍:文档地址:https://dev.mysql.com/doc/refman/8.0/en/innodb.

最近在网上看到一些文章里说:“change buffer 只适用于非唯一索引页。”其实这个观点是错的,先来看看官方文档对 change buffer 的介绍:

文档地址:dev.mysql.com/doc/refman/8.0/en/innodb-change-buffer.html

The change buffer is a special data structure that caches changes to secondary index pages when those pages are not in the buffer pool.

这里的意思是,缓存那些不在 buffer pool 中的二级索引页,并不是指非唯一的二级索引。那具体使用 change buffer 的条件是什么?其实具体使用条件主要汇集在以下五点:

  • 用户设置选项 innodb_change_buffering。

  • 在 mysql 的索引结构中,只有叶子结点才存储数据。因此有叶子节点才考虑是否使用 ibuf。

  • 如上面文档显示的一样,change buffer 只能缓存二级索引页,所以对于聚集索引,不可以缓存操作。聚簇索引页是由 Innodb 引擎将数据页加载到 Buffer Pool中(这个查找过程是顺序 I/O),然后进行数据记录插入或者更新、删除。

阅读全文

本文共计1601个文字,预计阅读时间需要7分钟。

非唯一索引页上的Change Buffer是否仅适用?

最近在文章中看到:change buffer 只适用于非唯一索引页。 这个观点是错误的。先来看看官方文档对 change buffer 的介绍:文档地址:https://dev.mysql.com/doc/refman/8.0/en/innodb.

最近在网上看到一些文章里说:“change buffer 只适用于非唯一索引页。”其实这个观点是错的,先来看看官方文档对 change buffer 的介绍:

文档地址:dev.mysql.com/doc/refman/8.0/en/innodb-change-buffer.html

The change buffer is a special data structure that caches changes to secondary index pages when those pages are not in the buffer pool.

这里的意思是,缓存那些不在 buffer pool 中的二级索引页,并不是指非唯一的二级索引。那具体使用 change buffer 的条件是什么?其实具体使用条件主要汇集在以下五点:

  • 用户设置选项 innodb_change_buffering。

  • 在 mysql 的索引结构中,只有叶子结点才存储数据。因此有叶子节点才考虑是否使用 ibuf。

  • 如上面文档显示的一样,change buffer 只能缓存二级索引页,所以对于聚集索引,不可以缓存操作。聚簇索引页是由 Innodb 引擎将数据页加载到 Buffer Pool中(这个查找过程是顺序 I/O),然后进行数据记录插入或者更新、删除。

阅读全文