表空间:(逻辑概念)
下面是用来帮助理解表空间提到的:
LVM逻辑步骤:多块物理盘--->1个大的卷组--->分成多个区-->格式化创建文件系统
多块PV--->VG---->lv ---FS
共享表空间(系统表空间):主要存放系统元数据等,就像lvm一样,可以扩展 例如:ibdata文件 ib_logfile文件
独立表空间:主要存放用户数据 例如:test.frm是存放表结构的,test.ibd是存放表数据的
①共享表空间设置:(放入配置文件中)
注意:除了最后一个文件可以自动扩展,前面的都必须是固定的,而且在设置的时候,前面已经存在的文件大小设置必须大于等于目前文件的大小
mysql> show variables like '%data%'; //查看默认情况
+-------------------------------+------------------------+
| Variable_name | Value |
+-------------------------------+------------------------+
| innodb_data_file_path | ibdata1:12M:autoextend | //这里最初是12M
[root@db01 mysql]# du -ms ibdata1 //现在是76M,所以设置的时候必须大于或者等于这个值
76 ibdata1
例子:
innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend
innodb_data_file_path=ibdata1:12M;ibdata2:50M:autoextend ----错误的配置XXX //ibdata1文件大小是76M,这里设置成12M,启动数据库会报错!
innodb_data_file_path=ibdata1:76M;ibdata2:50M:autoextend -----正确的配置
②独立表空间: 5.6版本开始之后,独立表空间默认是打开的
查看:show variables like '%per_table';。
删除表空间文件(ibd文件会被删除,只会剩下一个frm文件):
alter table test discard tablespace; (切记不能直接在目录下删除表空间文件!!!)