一、表空间的定义
1、在pg中表空间实际上是为表指定一个存储的目录。并且在创建数据库时可以为数据库指定默认的表空间。创建表和索引时可以指定表空间,这样表和索引就可以存储到表空间对应的目录下了。
在pg中一个库中可以有多个表空间,一个表空间可以被多个库使用,属于是多对多关系。
2、在mysql中表空间就是数据目录中的库文件中的表.ibd文件,在mysql中一个表就是一个表空间,也可以自己创建表空间,在创建表的时候指定这个表空间,这样一个表空间文件对应多个表。
在mysql中也是一个库中可以有多个表空间,一个表空间可以被多个库使用,属于是多对多关系。
3、在oracle中一个表空间只供一个库使用,一个库中有多个表空间,属于一对多的关系。
注意:表空间存放对象,如表、索引、视图。
视图是从一个表或多个表导出来的表,是一种虚拟表,不占内存空间,视图中保存的仅仅是一条select语句,其数据源来自数据库表或其他视图。
二、pg表空间的创建及使用
1、pg表空间创建及使用(创建的目录先创建注意属组也要变)
2、创建表指定表空间
3、设置指定库创建表使用默认表空间
上图说明不可以在库中设置本库的默认指定表空间
注意:如果库原先有指定表空间,这时候修改指定表空间后,原表空间目录会自动迁移到现指定表空间目录。
设置之前:
设置之后:
4、列出现有的表空间命令
三、mysql表空间的创建及使用
1、创建表空间
2、证明数据库与表空间多对多关系
3、数据目录里会出现同名的表空间文件
4、mysql也可以像pg一样去修改该表的表空间,即可以把旧表空间迁移到新表空间
待更新。