DDIA学习笔记

1.关系模型和文本模型

常见的mysql的表就是关系模型,通过相同的键把多个表联系起来,在进行相关查询时很方便。

文本模型比如用jsonl文件存储的数据,用字符串的字段来标明是哪个字段,特点是不能区分整数浮点数以及精度,不过在局部性上比关系模型具有优势

2.图模型

属性图的两种存储方法,一种是利用关系模型去存储图的属性,一种是利用三元组去存储,三元组即主谓宾,谓语和宾语可以是关系和节点,也可以是属性和属性值。

3.Bitcask

顺序存储的模型,基于顺序写这种哪怕是删除信息也是记录一行删除记录作为墓碑,对应的就是查任何数据都需要全局扫描,除了删除,更新也是追加写因此也是需要看全局才能确定。

对于它的直接改进引出了SStable,即顺序索引的追加写,乍一看顺序和追加写是矛盾的,实际上是因为在内存用Btree或者红黑树来排序写,对于内存操作定时存入磁盘。

这两者在磁盘中都有压缩和合并的过程来避免磁盘空间用尽。

文件合并的过程中不影响对数据的读取,因此这种日志顺序记录的存储结构支持压缩合并与使用并行。

4.BTree

不强制要求顺序写,同时索引有序的情况支持在内存中稀疏存储索引。

相关推荐
_李小白18 分钟前
【OSG学习笔记】Day 37: NodeVisitor(顶点访问器)
笔记·学习
程序员雷欧1 小时前
大模型应用开发学习第八天
大数据·人工智能·学习
SccTsAxR1 小时前
算法基石:手撕离散化、递归与分治
c++·经验分享·笔记·算法
晓晓hh1 小时前
JavaSE学习——set集合和Map映射
学习
西梅汁2 小时前
C++ 观察者模式
笔记
لا معنى له2 小时前
Var-JEPA:联合嵌入预测架构的变分形式 —— 连接预测式与生成式自监督学习 ----论文翻译
人工智能·笔记·学习·语言模型
世人万千丶2 小时前
Flutter 框架跨平台鸿蒙开发 - 宠物语言翻译器应用
学习·flutter·华为·开源·harmonyos·鸿蒙
AI成长日志2 小时前
【笔面试算法学习专栏】哈希表基础:两数之和与字母异位词分组
学习·算法·面试
"菠萝"2 小时前
C#知识学习-021(文字关键字)
开发语言·学习·c#
chase。2 小时前
【学习笔记】让机器人“边想边动”——实时动作分块流策略的执行方法
笔记·学习·机器人