CMU 15-445/645 Lec3
Database Storage P1
数据库的几个核心概念如下:
- Relational Databases
- Storage
- Execution
- Concurrency Control
- Recovery
- Distributed Databases
- Potpourri
本章节的核心是了解数据的逻辑存储结构与学习如何通过查询来读取和写入数据。
存储设备的对比
- 非持久化存储与持久化存储对比:
- 读取速率对比:
顺序读取与随机读取
- 随机读取一般要慢于顺序读取,
DBMS
尽量最大化顺序读取,这就需要各种算法的优化,使得读取尽量保证在同一个page
或者连续的block
中读取,而避免跨page
读取或者写入数据; - 由于目前的硬盘在随机读取时的性能会显著的低于顺序读取,因此在实际的
dbms
设计时需要尽量的避免随机读取
存储结构
硬盘中的 page
需要读取到内存中,为什么不用 mmap
来管理 DBMS
的 page
,通过 mmap
可以直接将内存中的地址与硬盘中的文件进行映射,非常方便,操作系统负责后端将文件内容读取到内容,并负责将文件内容写回到硬盘。但实际存在以下问题:
- 当多个线程读取该文件时,
mmap
没有什么问题,但是当多个线程都同时需要写入该文件时则存在问题。 - 难以保证事务安全,操作系统会随时将脏页清楚掉;
DBMS
不知道当前的页面是否在内存中,可能在读写时会产生pagefault
从而将线程挂起等待;- 错误捕捉,由于
page
的管理权限全部是由操作系统管理的,
总结
欢迎关注和打赏,感谢支持!
- 关注我的博客: http://whistle-wind.com/
- 关注我的知乎:https://www.zhihu.com/people/da-hua-niu
- 关注我的微信公众号: 公务程序猿
扫描二维码,分享此文章