DDIA学习笔记

1.关系模型和文本模型

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

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

2.图模型

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

3.Bitcask

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

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

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

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

4.BTree

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

相关推荐
LYS_06182 小时前
寒假学习(14)(HAL库5)
java·linux·学习
2501_901147832 小时前
学习笔记:基于摩尔投票法的高性能实现与工程实践
笔记·学习·算法·性能优化
神一样的老师2 小时前
【ELF2学习开发板】Linux 命令行读取 MPU6050 传感器数据(I2C 总线)实战
linux·运维·学习
铁蛋AI编程实战2 小时前
最新 豆包4.0 实操手册:混合架构部署 + 实时交互 + 动态学习
学习·架构·交互
Titan20242 小时前
搜索二叉树笔记模拟实现
数据结构·c++·笔记·学习
野木香2 小时前
solidity学习
学习
Lester_11013 小时前
嵌入式学习笔记 - 自举电路
笔记·嵌入式硬件·学习
驱动探索者3 小时前
linux genpool 学习
java·linux·学习
yukai080083 小时前
【最后203篇系列】036 MDP学习思考
人工智能·学习