我想创建一个带有时间戳的MVCCKey,而且我知道它很有价值。但我意识到roachpb.key
不是很直接;是否涉及一些前缀/后缀?数据库名称是否也在roachpb.key
中编码?
有谁能告诉我MVCCKey是如何形成的?它有什么信息?在文档中,它只是说它看起来像/ table / primary / key / column。
答案 0 :(得分:2)
engine.MVCCKey
将常规键与时间戳组合在一起。 bar_rep
为encoded字节字符串,用作RockDB密钥(RocksDB配置了自定义比较器,因此MethodA() calls MethodB()
MethodB() calls MethodC()
正确排序,即使时间戳使用可变宽度编码)。
常规键是roachpb.Key
类型的字节字符串。对于普通数据记录,表,列和索引ID中的键是constructed,以及索引列的值。 (此处不包括数据库ID;表MVCCKeys
表中可以找到表所属的数据库)
函数keys.PrettyPrint
可以将MVCCKeys
转换为人类可读的形式。