1.表空间是什么有什么作用?
- KES中的表空间实际上就是文件系统中的一个目录,是KES中数据库对象包括表、索引等的容器。
- 简单点说的话表空间就是告诉KES服务器将数据库对象的物理文件存放在哪里。
2.表空间的分类
默认表空间:sys_default,是用户表、用户表index、临时表等的默认空间。 对应的文件系统目录:/home/test/KESwgq/B0020/db/Server/bin/data/base
系统字典表的表空间: sys_glpbal,用于存放系统的字典表,如sys_database、sys_authid、sys_tablespace等表。 对应的文件目录:/home/test/KESwgq/B0020/db/Server/bin/data/global
自定义的表空间:用户自己创建的表空间。 文件系统目录:/home/test/KESwgq/B0020/db/Server/bin/data/sys_tblspc
当手动创建表空间时,该目录下会生成一个软连接,指向表空间设定的路径。
3.数据库表空间的创建和使用
(1)创建表空间
CREATE TABLESPASE mytbsp LOCATION ‘/wgqtmp/mytbsp’
创建表空间报错: 报错的原因是创建表空间的路径必须提前存在。 这里的路径是在/下面的,我们发现确实没有我们需要的路径。
新建一个路径: /home/test/KESwgq/B0020/db/wgqtmp/mytbsp
以上创建了mytbsp的表空间。
因为创建了表空间,所以在刚才提到的: /home/test/KESwgq/B0020/db/Server/bin/data/sys_tblspc 目录下就会生成一个软链接,该软链接指向表空间设定的路径。
在表空间创建成功以后,在自定义表空间的位置,会自动生成一个软链接。
通过该软链接可以找到自定义存储空间所对应的路径:在目录下使用 ll 命令
创建表空间的注意事项:
- 自定义表空间的名字不能以‘sys_’开头,因为这些名称为系统表空间预留的。
- 在创建表空间时如果没有指定用户,则默认执行该语句的用户即为所属用户。
- 表空间对应的路径必须提前存在。
- 表空间对对应的路径必须是空目录。
(2)表空间的使用:在创建数据库的时候,有一个tablespace选项,利用这个配置项指定SQL对象的表空间。 如:以mytbsp为表空间创建一个名为wgqdb的数据库。此后该数据库中所有对象的默认表空间为mytbsp。
在mytbsp表空间中创建一张newtab表
4.使用表空间的优点
-当存储分区没有空间时,可以使用表空间将数据库存到其他分区。
- 可以利用表空间对数据库进行性能优化。将频繁使用的数据表或者索引放在高性能的硬盘上,将使用较少的放到普通的磁盘上。
5.表空间的修改与删除
-- 表空间的修改语法:
ALTER TABLESPACE name RENAME TO new_name
ALTER TABLESPACE name OWNER TO new_owner
参数说明:
RENAME TO:用于更改表空间名称
OWNER TO:用于更改表空间所属用户
- 表空间的删除语法:
DROP TABLESPACE [ IF EXISTS ] name
参数说明:
IF EXISTS为可选关键字,在删除表空间时,如果表空间不存在,则不会报错,只会打印NOTICE信息。 更多信息,参见https://help.kingbase.com.cn/v8/index.html