MySQL Table--独立表空间

数据库表空间数据库

独立表空间spa

在MySQL 5.6 中引入独立表空间的概念,启用独立表空间后,每一个表将生成独立的文件来进行存储。code

建立表时能够指定表存放的文件路径
blog

##首选须要确保innodb_file_per_table开启: show variables like 'innodb_file_per_table'; ##建立表时指定目录 CREATE TABLE t1 (c1 INT PRIMARY KEY) DATA DIRECTORY = '/remote/directory';

 

共享表空间优缺点索引

Innodb的全部数据保存在一个单独的表空间里面,共享表空间能够由多个文件组成,当表使用共享表空间时,表数据能够分布在多个文件中,从而不受Innodb单表不超过64TB的限制。 默认的共享表空间的文件路径在data目录下,默认文件名为ibdata1,初始化为10M。 优势: 能够放表空间分红多个文件存放到各个磁盘上,没有单表不超过64TB的限制。 缺点: 因为多表共用一个共享表空间,当某些表进行大量删除后,共享表空间存在大量碎片,但MySQL暂未提供对共享表空间收缩的方法。

 

独立表空间优缺点rem

经过innodb_file_per_table参数将innodb表的数据和索引存放到其本身的表空间中,再也不使用共享表空间,独立表空间的默认目录为innodb_data_file 优势: 1、 每一个表有本身独立的表空间,数据和索引存放到其独立的表空间中。 2、能够轻松实现表在不一样数据库之间移动 3DROP TABLE后,表使用的空间当即被释放 4、当表中数据被大量删除后,可使用alter table TableName engine=innodb;来进行收缩 5、表空间存在碎片时不会影响其余表的使用。 缺点: 1、使用独立表空间后,没法再将表数据分散到不一样的多个文件中,若是单个存储没法提供该表所需的所有空间时,没法经过增长新存储来解决 2、innodb_file_per_table开启后,不会影响已经使用共享表空间的表。 3、单表数据较大时,致使其对于的数据文件过大而不利于维护
相关文章
相关标签/搜索