
7
第一部分
存储引擎
所有数据库管理系统的主要工作都是可靠地存储数据并使其对用户可用。我们使用数据
库作为数据的主要来源,帮助我们在应用程序的不同部分之间共享数据。我们使用数据
库,而不是在每次创建新应用程序时寻找存储和检索信息的方法,也不是每次都去发明
一种组织数据的新方法。这样一来,我们就可以专注于应用程序逻辑而不是基础设施。
由于
数据库管理系统
(DBMS)一词相当冗长,所以在本书中,我们使用了更紧凑的术
语
数据库系统
和
数据库
来指代相同的概念。
数据库是模块化的系统,由多个部分组成:接受请求的传输层、决定以最高效方式运行
查询的查询处理器、执行操作的执行引擎以及存储引擎(参见 1.1 节 )。
存储引擎
(或数据库引擎)是数据库的一个软件组件,它负责在内存和磁盘上存储、检
索和管理数据,而设计它的目的是长久保存每个节点的数据 [REED78]。数据库可以响应
复杂的查询,存储引擎则会更细粒度地看待数据并提供一组简单的数据操作 API,允许用
户创建、更新、删除和检索数据记录。从某个角度来看,数据库是构建在存储引擎之上的
应用程序,它提供了表结构(schema)、查询语言、索引、事务和许多其他有用的特性。
为了获得灵活性,键和值都可以是没有预设格式的任意字节序列。它们的排序和表示语
义是在更高级别的子系统中定义的。例如,你可以在一个表中使用 int32(32 位整数)
作为键,而在另一个表中使用 ascii(ASCII 字符串);从存储引擎的角度来看,这两
个键都只是序列化的条目。
BerkeleyDB、LevelDB ...