返回介绍

3. 存储与检索

发布于 2024-08-24 16:53:18 字数 846 浏览 0 评论 0 收藏 0

建立秩序,省却搜索 ——德国谚语

一个数据库在最基础的层次上需要完成两件事情:当你把数据交给数据库时,它应当把数据存储起来;而后当你向数据库要数据时,它应当把数据返回给你。

在 第 2 章 中,我们讨论了数据模型和查询语言,即程序员将数据录入数据库的格式,以及再次要回数据的机制。在本章中我们会从数据库的视角来讨论同样的问题:数据库如何存储我们提供的数据,以及如何在我们需要时重新找到数据。

作为程序员,为什么要关心数据库内部存储与检索的机理?你可能不会去从头开始实现自己的存储引擎,但是你 确实 需要从许多可用的存储引擎中选择一个合适的。而且为了调谐存储引擎以适配应用工作负载,你也需要大致了解存储引擎在底层究竟做什么。

特别需要注意,针对 事务 性负载和 分析性 负载优化的存储引擎之间存在巨大差异。稍后我们将在 事务处理还是分析? 一节中探讨这一区别,并在 列存储 中讨论一系列针对分析优化存储引擎。

但是,我们将从您最可能熟悉的两大类数据库:传统关系型数据库与很多所谓的 NoSQL 数据库开始,通过介绍它们的 存储引擎 来开始本章的内容。我们会研究两大类存储引擎: 日志结构(log-structured) 的存储引擎,以及 面向页面(page-oriented) 的存储引擎(例如 B 树)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文