Tipedia

TiDB 是如何将表中的行、列数据映射到KV的

Last edited by longfangsong at 2021-06-09
TiDB TiKV codec

每行数据按照如下规则进行编码成 Key-Value pair:

Key: t{tableID}_r{rowID}
Value: [col1, col2, col3, col4]

其中 tableID 和 rowID 是其无符号 64 bit 表示 xor 上 0x8000000000000000 的结果,这么做的原因是保证所有的 id 按bit有序。

虽然 ID 实际上不会有负值,但是由于一系列历史遗留原因,TiDB 代码中这里还是用的 int64 类型。

Encode & Decode

    Links