文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
3. 存储与检索
建立秩序,省却搜索 ——德国谚语
一个数据库在最基础的层次上需要完成两件事情:当你把数据交给数据库时,它应当把数据存储起来;而后当你向数据库要数据时,它应当把数据返回给你。
在 第 2 章 中,我们讨论了数据模型和查询语言,即程序员将数据录入数据库的格式,以及再次要回数据的机制。在本章中我们会从数据库的视角来讨论同样的问题:数据库如何存储我们提供的数据,以及如何在我们需要时重新找到数据。
作为程序员,为什么要关心数据库内部存储与检索的机理?你可能不会去从头开始实现自己的存储引擎,但是你 确实 需要从许多可用的存储引擎中选择一个合适的。而且为了调谐存储引擎以适配应用工作负载,你也需要大致了解存储引擎在底层究竟做什么。
特别需要注意,针对 事务 性负载和 分析性 负载优化的存储引擎之间存在巨大差异。稍后我们将在 事务处理还是分析? 一节中探讨这一区别,并在 列存储 中讨论一系列针对分析优化存储引擎。
但是,我们将从您最可能熟悉的两大类数据库:传统关系型数据库与很多所谓的 NoSQL 数据库开始,通过介绍它们的 存储引擎 来开始本章的内容。我们会研究两大类存储引擎: 日志结构(log-structured) 的存储引擎,以及 面向页面(page-oriented) 的存储引擎(例如 B 树)。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论