和mysql一样也是 B+Tree吗
tidb底层是rocksdb,一个kv数据库,用的数据结构是LSM-TREE
业务数据和索引数据,都会转为KV键值对再进行存储,底层tikv可以粗略理解为就是一个超大的Map结构。
这些KV键值对,存储在 RocksDB 中,数据结构是LSM树。
LSM-Tree结构,当有新的数据写入时,首先将其写入内存中的Memtable,Memtable会定期或者在达到一定大小时,将数据flush到磁盘上的SSTable中,当sst达到一定程度时,会压缩合成一个大ssttable
LSM-TREE结构
但是我 执行 show index from customer看一个表时,看到 index_type显示的是BTREE呀,是怎么回事呢
为了兼容mysql,只是一个显示
1 个赞
最初应该是为了对标兼容 MySQL 5.7 协议吧,仅仅是兼容性显示而已,底层实际存储并不是的。
Tree结构的,看了相关视频,好像也是KV结构存储
索引也是编码成KV存储到TiKV中的,编码规则见https://docs.pingcap.com/zh/tidb/stable/tidb-computing#索引数据和-key-value-的映射关系
TiKV底层使用Rocksdb作为key values存储引擎,底层数据结构是LSM-tree
推荐看下tikv的文档:
2 个赞
LSM-TREE
也是kv存储把
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。