【是否原创】是
【首发渠道】TiDB 社区
【正文】
**tidb中的key和MVCC value解析**
下面介绍下tidb中key和mvcc value的解析方式,供大家学习参考,不对之处还请指正,后续有其他信息会在此贴更新。
一、key解码
1、 直接使用TIDB_DECODE_KEY函数进行解析
pd-ctl region查看的key信息是一串十六进制字符串
TIDB_DECODE_KEY是5.0版本开始有的tidb内置函数可以将key解析为包含table_id/rowed的json格式
2、 使用ctl工具转换
(1) 使用tikv-ctl --to-escaped将key转换为escaped raw格式
解析处理的格式已经包含t_、_r
(2) 使用tikv-ctl --to-hex 将每组字符转换为十六进制
使用转换后的十六进制进行替换
(3) 使用tidb-ctl decoder进行解码
二、 解析MVCC信息
1、 假设我们已经获得key的rowid
2、使用API接口查询相应rowid的MVCC版本信息
curl “http://tidb-server:10081/mvcc/key/db_name/table_name/row_id”
可以看到该行数据已经有2个版本
3、 解析mvcc版本信息
使用pd-ctl tso解析tso,使用tidb-ctl base64decode解析MVCC value