关于rocksdb的ColumnFamily问题

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】7.50
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
tidb的kvdb 中有四个 ColumnFamily:raft、lock、default、write,其中数据存在下面2个cf中:

  • write 列:用于存储用户真实的写入数据以及 MVCC 信息(该数据所属事务的开始时间以及提交时间)。当用户写入了一行数据时,如果该行数据长度小于 255 字节,那么会被存储 write 列中,否则的话该行数据会被存入到 default 列中。由于 TiDB 的非 unique 索引存储的 value 为空,unique 索引存储的 value 为主键索引,因此二级索引只会占用 writecf 的空间。

  • default 列:用于存储超过 255 字节长度的数据。

有一些疑问:
255 字节对于变长类型,如 varchar,是按实际数据长度确定存在哪个cf吗? 如果是,出现同一个表的数据在2个cf中吧

kvdb本身存储的就是keyvalue数据,不是某个字段的值,至于value的长度本身就是不确定的,是存放在write里面还是default里面本身就是按照实际长度的吧,跟有没有变长类型没关系。

https://learn.pingcap.com/learner/player/1110001;id=1110001;classroomId=1560001;rcoId=1710006;courseDetailId=960001;learnerAttemptId=1707122745777

看看这个课。讲事务的。

按照实际占用空间算吧?

是按照实际长度算的

按实际占用空间算

按实际长度

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。