..

变长字段数据库存储方式idea

对于变长的字段,用length表示其tuple的长度,用average表示这个表的平均长度(当然这个average需要长期维护,可能在元数据中或者其他地方),然后用id表示序号

然后每个tuple需要用一个结尾标识符(结尾标识符其实并不是一个好的想法)来标识,或者用length来获取长度以用来读取一个tuple

那么二进制存储就应该如此表示

id-average-length(当然顺序是可以改变的,其实average是不用存在每一个tuple的元数据中,存在table/page的元数据中可能会更好)

如何查询?

例如想要查询第n条数据【从0开始】

首先就通过average*n来确定偏移量,定位到偏移量的具体tuple内容中,然后通过结尾标识符(或者其他方法)来确定该tuple或者是写一个tuple是第几条,然后根据往前或者往后,找到第n条数据,完成查询