https://docs.pingcap.com/zh/tidb/stable/tidb-computing#索引数据和-key-value-的映射关系
官方文档中描述的非唯一索引的KV编码为:
Key: tablePrefix{TableID}_indexPrefixSep{IndexID}_indexedColumnsValue_{RowID}
Value: null
疑问:当表中N条记录的索引列值相同时,那么在二级索引中是记录N条KV记录,还是只记录一条或者几条?如果不是记录N条记录,那Key中的{RowID}对应谁?
我举个例子吧,表t中有个status字段,它只有10种可选值1~10,我在status字段上建了索引。现在表t有10万行记录,那么status索引的KV记录是10条、10万条,还是其它数量?如果status索引的KV记录不是10万条,那Key中的RowID对应哪些行的ROWID?
xfworld
(魔幻之翼)
2
RowID 就是指向 索引关联的数据的唯一主键了,如果是聚簇索引,就是唯一主键,如果是其他类型的,可能是 _tidb_row_id
Key: tablePrefix{TableID}_indexPrefixSep{IndexID}indexedColumnsValue{RowID}
indexedColumnsValue 这个值才是比较重要的部分,用来做索引识别的
参考文档
https://docs.pingcap.com/zh/tidb/stable/tidb-computing#索引数据和-key-value-的映射关系
xfworld
(魔幻之翼)
4
热点索引听说过没?
二级索引,你有多少实际记录,就会有多少条二级索引,你可以自己尝试一下
system
(system)
关闭
6
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。