TIDB SERVER membuffer和cache table都是缓存哪些数据

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

TIDB SERVER membuffer和cache table都是缓存哪些数据

Membuffer 一般存储的是查询的结果集、元数据、统计信息等。Cache Table存储的表数据可长期存在,只有被淘汰或者手动清除才会消失,一般用于不经常变化且高频访问的表数据。

MemBuffer主要用于缓存事务中的修改数据:它是TiDB内部的一个内存缓冲区,用于暂时存储事务中的写入操作。当事务执行写入操作时,数据会先写入MemBuffer,而不是直接写入存储层。事务提交时,MemBuffer中的数据才会被持久化到存储层。这种机制可以提高事务的性能,特别是对于短期事务。
Cached Table是TiDB v6.0.0引入的一个特性,用于缓存整个表的数据:它适用于小型(通常小于4 MiB)、频繁访问但很少更新的表。整个表的数据会被加载到TiDB服务器的内存中。TiDB可以直接从内存中读取数据,无需访问TiKV存储层。这种机制主要用于提高读取性能,特别是对于经常成为热点的小表。

Cache Table 是 TiDB 中用于缓存热点数据的一种机制,主要用于加速读取操作。Cache Table 通常会缓存经常被访问的数据行,以及一些统计信息,比如索引的统计信息。

membuffer 缓存:
主要用于存储执行写入操作时的中间数据。例如,当执行 INSERT、UPDATE 或 DELETE 操作时,变更的数据会首先被缓存在 membuffer 中。
缓存的大小通常受到 TiDB 配置参数 mem-quota-query 的限制。
cache table 缓存:
cache table 缓存通常用于缓存那些读取频繁且不经常变更的表。https://docs.pingcap.com/zh/tidb/stable/cached-tables#缓存表
缓存的大小同样受到 mem-quota-query 参数的限制。

membuffer主要缓存:SQL 查询结果,事务缓冲,元数据和统计数据
cache table主要用于热点小表的缓存功能,表要求小于64M

membuffeer修改数据,cache table是热点数据