1)file-per-table tablespace 、system tablespace -----》 general tablespace
ALTER TABLE tbl_name TABLESPACE [=] tablespace_name;
eg:
alter table t1 tablespace ts1;
move 完table后表原来的ibd 文件会被删除;
2)general tablespace 、 file-per-table tablespace -----》 system tablespace,
ALTER TABLE tbl_name TABLESPACE [=] innodb_system;
3)system tablespace 、general tablespace ------》 file-per-table tablespace,
ALTER TABLE tbl_name TABLESPACE [=] innodb_file_per_table;
eg:
alter table t1 tablespace innodb_file_per_table;
原来表空间的物理大小不会自动被回收。
ALTER TABLE ... TABLESPACE 操作原理:全表重建类似(cats)
TABLESPACE 关键词对象 后面没有跟具体的表空间也是会重建表
操作期间会锁表;