在金倉數據庫中,數據庫在邏輯上分成多個存儲單元,該單元稱作表空間。表空間用作把邏輯上相關的數據結構放在一起。數據庫邏輯上是由一個或多個表空間組成。在數據庫初始化的時候,會自動創建sys_default、sys_global和sysaudit三個表空間。
其中:
- sys_global:該表空間用於存放系統表,對應存儲目錄是$KINGBASE_DATA/global/。
- sys_default:創建表時的默認表空間,該表空間的物理文件存儲在數據目錄中的base目錄中,例如:$KINGBASE_DATA/base/。
- sysaudit:該表空間用於存放安全審計相關的數據。對應存儲目錄$KINGBASE_DATA/sys_aud
視頻講解如下:
https://www.bilibili.com/video/BV1ejiLBWE6C/?aid=115817467352...
下面通過具體的操作來演示如何查看KingBaseES中已有的表空間和如何創建自己的表空間。
(1)登錄金倉數據庫。
ksql -U system -d kingbase
(2)查看已有的表空間。
kingbase=# \db
# 輸出的信息如下:
表空間列表
名稱 | 擁有者 | 所在地
-------------+--------+--------
sys_default | system |
sys_global | system |
sysaudit | system |
(3 行記錄)
(3)創建自己的表空間。
kingbase=# create tablespace mydemotbs location '/home/kingbase/mydemotbs';
(4)在mydemotbs 表空間上創建表。
kingbase=# create table testtable1(tid int primary key,tname text) tablespace mydemotbs;
(5)再次查看KingBaseES中已有的表空間。
kingbase=# \db
# 輸出的信息如下:
表空間列表
名稱 | 擁有者 | 所在地
-------------+--------+--------------------------
mydemotbs | system | /home/kingbase/mydemotbs
sys_default | system |
sys_global | system |
sysaudit | system |
(4 行記錄)
(6)將該表空間設置為默認的表空間。
kingbase=# set default_tablespace = mydemotbs;
(7)查詢表空間信息
kingbase=# select * from sys_tablespace;
# 輸出的信息如下:
oid | spcname | spcowner | spcacl | spcoptions
-------+-------------+----------+--------+------------
1663 | sys_default | 10 | |
1664 | sys_global | 10 | |
1986 | sysaudit | 10 | |
16427 | mydemotbs | 10 | |
(4 行記錄)
(8)使用\db+命令查看錶空間的詳細信息。
kingbase=# \db+
# 輸出的信息如下:
表空間列表
名稱 | 擁有者 | 所在地 | 存取權限 | 選項 | 大小 | 描述
-------------+--------+--------------------------+----------+------+------------+------
mydemotbs | system | /home/kingbase/mydemotbs | | | 8237 bytes |
sys_default | system | | | | 102 MB |
sys_global | system | | | | 101 MB |
sysaudit | system | | | | 32 kB |
(4 行記錄)
# 命令中的加號表示顯示詳細信息。