第一部分 存储引擎
Q: 数据库管理系统的主要工作是什么?
A:目标是为了可靠地存储数据并使其对用户可见。
Q:使用数据库的好处?
A: 使用数据库作为数据的主要来源,帮助我们在应用程序的不同部分之间共享数据。不必每次在创建新应用程序时寻找存储和检索信息的方法,也不是每次都去发明一种组织数据的新方法。这样,我们可以更加专注于应用程序逻辑而不是基础设施。
Q: 数据库管理系统的英文简称
A: DBMS
Q: 数据库的组成模块
A: 1. 接受请求的传输层, 2. 决定以最高效方式运行查询的查询处理器 3. 执行操作的执行引擎 4. 存储引擎
Q: 存储引擎的主要作用以及和数据库的关系
A: 存储引擎(数据库引擎)是数据库的一个软件组件,它负责在内存和磁盘上存储、检索和管理数据,而设计它的目的是长久保存每个节点的数据。
数据库可以响应复杂的查询,存储引擎则会更细粒度地看待数据并提供一组简单的数据操作API, 允许用户创建、更新、删除和检索数据记录。
存储引擎和数据库的关系: 从某种角度上,数据库是构建在存储引擎之上的应用程序,它提供了表结构(schema)、查询语言、索引、事务和许多其他有用的特性。
Q: 存储引擎中的键和值的格式有什么要求吗?
A: 为了获得灵活性,键和值都可以是没有预设格式的任意字节序列。他们的排列和表示语义是在更高级别的子系统中定义的。例如,你可以在一个表中使用int32(32位整数), 而在另一个表中使用ascii(ASCII字符串), 存储引擎的角度来看,这两个键都只是序列化的条目。
Q: 可插拔数据库以及它的好处
A: BerkelelyDB、LevelDB(及其后代RocksDB)、LMDB(及其后代libmdbx、Sophia和HaloDB)等存储引擎的开发都与它们现在所嵌入数据库彼此独立。使用可插拔的存储引擎是数据库开发人员能够使用现有存储引擎来构建数据库系统,并将精力集中在其他子系统上。