DDIA学习笔记

1.关系模型和文本模型

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

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

2.图模型

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

3.Bitcask

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

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

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

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

4.BTree

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

相关推荐
敬往事一杯酒哈6 小时前
海康 AGV 导航读码器学习
学习
qq_284274058 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
qq_284274059 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
Titan202410 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
小雪崩11 小时前
嵌入式学习 day64:字符设备驱动
学习
深圳老胡11 小时前
STM32CubeMX 生成 CMake 工程,用 VSCode 编译与调试的完整流程
笔记·stm32·单片机·代码规范
个 人 练 习 生11 小时前
C++ string 类模拟实现:从底层理解字符串(上)
开发语言·c++·经验分享·学习·程序人生
坤坤子吖11 小时前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习
乐橙开放平台12 小时前
智慧连锁客流检测和离岗检测怎么对接
大数据·人工智能·笔记·物联网·自动化·音视频·智能家居
零基础12312 小时前
FinalShell 使用教程:从安装到高效运维
运维·经验分享·笔记·finalshell