1.关系模型和文本模型
常见的mysql的表就是关系模型,通过相同的键把多个表联系起来,在进行相关查询时很方便。
文本模型比如用jsonl文件存储的数据,用字符串的字段来标明是哪个字段,特点是不能区分整数浮点数以及精度,不过在局部性上比关系模型具有优势
2.图模型
属性图的两种存储方法,一种是利用关系模型去存储图的属性,一种是利用三元组去存储,三元组即主谓宾,谓语和宾语可以是关系和节点,也可以是属性和属性值。
3.Bitcask
顺序存储的模型,基于顺序写这种哪怕是删除信息也是记录一行删除记录作为墓碑,对应的就是查任何数据都需要全局扫描,除了删除,更新也是追加写因此也是需要看全局才能确定。
对于它的直接改进引出了SStable,即顺序索引的追加写,乍一看顺序和追加写是矛盾的,实际上是因为在内存用Btree或者红黑树来排序写,对于内存操作定时存入磁盘。
这两者在磁盘中都有压缩和合并的过程来避免磁盘空间用尽。
文件合并的过程中不影响对数据的读取,因此这种日志顺序记录的存储结构支持压缩合并与使用并行。
4.BTree
不强制要求顺序写,同时索引有序的情况支持在内存中稀疏存储索引。