跳到主要内容
版本:Next

数据库群集

在Halo数据库体系中,数据库群集(Database Cluster)类似一个容器,在该容器内可以创建多个独立的数据库,分别对应不同的系统,即多租户。数据库群集初始化后,会创建3个默认的数据库:halo0root、template1和template0。

  • halo0root:管理库,群集管理使用,请不要删除。

  • template1:正如其名称所示,这是一个模板库,后面通过CREATE DATABASE命令创建的库默认都以它为模板进行创建。

  • template0:也是一个模板库。和template1的区别在于,通过template1创建的库部分库属性,如字符集是无法更改的。而通过template0就可以。

数据库

在Halo中,数据库(Database)是真正存储数据的地方,可以使用CREATE DATABASE命令来创建一个数据库。

一个数据库通常包含多种不同类型的对象:

  • 索引

  • 视图

  • 函数

  • 存储过程

  • 触发器

  • 序列

  • 约束

其中表通常是最基本的对象。除了上述类型的对象外,可能还会有用户自定义类型、外部表、用户自定义操作符、外键等。

数据存储结构

在Halo数据库中,数据库群集是一组数据库的集合。每个数据库又是一组对象的集合。

图1-2 数据库存储结构

图1-2描述了这种关系。其中,表的数据文件内部又被划分为固定长度的页(Page),通常为8KB。每个文件中的页从0开始按顺序编号,该编号即为页号。页通常又被划分为页头和数据,即Page Layout中的内容。数据按行(Row)进行存储,每一行又被划分为行头和实际数据,即Row Layout中的内容。索引的布局与表的布局类似。