InnoDB采纳按表空间(tablespace)的方法举行存储数据,默许设置状况下会有一个初始巨细为10MB, 名字为ibdata1的文件,该文件就是默许的表空间文件(tablespcefile),用户能够经过参数innodb_data_file_path对其举行配置,能够有多个数据文件,若是没有配置innodb_file_per_table的话,那些Innodb存储范例的表的数据都放在这个同享表空间中,而体系变量innodb_file_per_table=1的话,那末InnoDB存储引擎范例的表就会发生一个自力表空间。
那末自力表空间有哪些好坏呢?怎样去判定XX表是自力表空间仍是同享表空间?
一、自力表空间优缺点
1. 好处:
(1) 每一个表都有自已自力的表空间。
(2) 每一个表的数据和索引都会存在自已的表空间中。
(3) 能够实现单表在分歧的数据库中挪动。
(4) 空间能够回收(除drop table操纵处,表空不能自已回收)
2. 缺陷
单表增长过大,如高出100个G。
二、鉴别数据表是自力表空间仍是同享表空间
1. 经过ibd文件鉴别
要是表的存储引擎是InnoDB,并且表空间(tablespace)是同享表空间的话,那末数据库对应目次下面是没有"表名.ibd"文件的。自力表空间的表的话,则有"表名.ibd"文件。只是这个法子很笨,对付临盆情况,大量的表经过这类方法辨别,确凿不是一个好法子。
2. INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES辨别
MySQL 5.6的INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES对于这个体系表供应了有关表格的花样和存储特征,囊括行款式,紧缩页面巨细位级别的信息(如合用),INNODB的表空间信息。
3. INFORMATION_SCHEMA.INNODB_SYS_TABLES辨别(保举)
MySQL 5.7的INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES中多了SPACE_TYPE字段,无非其值所有为Single,而INFORMATION_SCHEMA.INNODB_SYS_TABLES中也多了字段SPACE_TYPE,其值有Single与System 划分示意自力表空间和同享表空间。
【编辑保举】