【国产数据库】GBase学习⑥ - GBase 8c 存储逻辑结构
名词解释:
Tablespace :即表空间,是一个目录,可以存在多个,里面存储的时它所包含的数据库的各种物理文件、每个表空间可以对应多个Databases。
Database :即数据库,用于管理各类数据对象,各数据库间相互隔离。数据库管理的对象可分布在多个Tablespace上。
Datafile Segment :即数据文件,通常每张表只对应一个数据文件。如果某张表的数据大于1GB,则会分为多个数据文件存储。
Table : 即表,每张表只能属于一个数据库,也只能对应到一个Tablespace。每张表对应的数据文件必须在同一个Tablespace中。
Block :即数据块,时数据库管理的基本单位,默认大小为8KB。
表空间
① 如果数据库所在的分区或者卷空间已满,又不能逻辑上扩展更多空间,可以在不同的分区上创建和使用表空间,知道系统重新配置空间。
② 表空间允许管理员根据数据库对象的使用模式安排数据位置,从而提高性能:
- 频繁使用的索引可以放在性能稳定且运算速度较快的磁盘上,比如SSD固态设备。
- 存储归档的数据,很少使用或者对性能要求不高的表可以存储在一个运算速度较慢的磁盘上。
③ 通过表空间,管理员可以设置其占用的磁盘空间上限,用以在和其他数据共用分区的时候,防止表空间占用相同分区上的其他空间。
④ GBase 8c 自带两个表空间:
- 默认表空间:pg_default:用来存储非共享系统表、用户表、用户表index、临时表、临时表index、内部临时表的默认表空间。对应存储目录为实例数据目录下的base目录。
- 共享表空间:pg_global:用来存放共享系统表的表空间。对应存储目录为实例数据目录下的global目录。
使用示例:
管理表空间:
创建表空间:CREATE TABLESPACE
修改表空间 ALTER TABLESPACE
删除表空间 DROP TABLESPACE
CREATE TABLESPACE ds_location1 OWNER user1 RELATIVE LOCATION 'tablespace/tablespace1';
ALTER TABLESPACE ds_location1 RENAME TO ds_location2;
DROP TABLESPACE ds_location2;
数据库
① 数据库兼容模式
DBCOMPATIBILITY兼容模式: 可选值:A(默认值) 、B、C、PG。 分别兼容O 、MY、TD和POSTGRES。
- A兼容性下,数据库将空字符串作为NULL处理,数据类型DATE会被替换为TIMESTAMP(0) WITHOUT TIME ZONE。
- B兼容性下,在将字符串转换成整数类型时,如果输入不合法,B兼容性将输入转换为0,而其他兼容性则会报错。
- B、PG兼容性下,CHAR 和 VARCHAR 以字符为计数单位,其他兼容性以字节为计数单位。例如,对于UTF-8字符集,CHAR(3)在B、PG兼容性下能存放3个中文字符,而在其他兼容