Rocksdb是一个kv引擎,由facebook团队基于levelDB改进而来,Rocksdb采用LSM-tree存储数据,良好的读写特性以及压缩特性使得其非常受欢迎。此外,Rocksdb引擎作为插件已经集成在facebook维护的MySQL分支,用户可以通过SQL来访问rock ...
Rocksdb是一个kv引擎,由facebook团队基于levelDB改进而来,Rocksdb采用LSM-tree存储数据,良好的读写特性以及压缩特性使得其非常受欢迎。此外,Rocksdb引擎作为插件已经集成在facebook维护的MySQL分支,用户可以通过SQL来访问rocksDB。本文主要通过分析Rocksdb引擎的记录格式,并通过对比innodb,来让大家了解Rocksdb。Rocksdb作为一个kv引擎,用户通过put(key,value)来写入key,或者通过get(key)接口来获取value,对rocksdb本身而言,每条记录都是一个key-value。当Rocksdb作为一个存储引擎接入到MySQL时,key-value结构如何存储表中各个索引,以及如何记录中各个列的信息是本文要具体讨论的。rocksdb引擎与innodb引擎类似,也是采用索引组织表,无论是表(主键索引)还是二级索引都是以LSM tree方式组织,rocksdb记录主要包括三部分,key,value和meta三部分内容,具体见下表,然后我通过介绍一条具体记录在rocksdb引擎中的存储格式来说明问题。
rocksdb基本记录存储格式
key_size | key | value_size | value |
PK/SecKey | Columns data | SeqenceId,flag |
create table row_format( id int not null, c1 int, c2 char(10) not null, c3 char(10), c4 varchar(10), c5 varchar(10) not null, c6 blob, c7 binary(10) not null, c8 varbinary(10)) engine=rocksdb;insert into row_format(id,c2,c4,c5,c7) values(1,'abc','abc','efg','111')
原标题:Rocksdb引擎记录格式
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。