在使用Percona XtraBackup的部分备份功能时,发现官方文档的第一句话就是:xtrabackup supports taking partial backups when the innodb_file_per_table option is enabled.于是查询了一下MySQL的 innodb_file_per_tableinnodb_file_per_table 顾名思义,首先是innoDb引擎的配置,其次表示每表一个文件。其实也就是独立表空间,与之对应的就是共享表空间。打开MySQL的datadir,进入一个innoDb数据库的目录,会看到每张表都对应有两个文件:table_name.frm 和 table_name.ibd,这就是开启了独立表空间的效果。查看是否开启mysql> show variables like ‘%per_table%’;开启方法:在my.cnf文件[mysqld]下设置innodb_file_per_table=1MySQL自5.6.6版本,就默认开启了这个参数,所以就没意识到它的存在。那么MySQL为什么要默认开启独立表空间呢,肯定有其原因。独立表空间的优点:每个表都有自己独立的表空间。每个表的数据和索引都在自己的表空间中。可以实现单表在不同的数据库中移动。空间可以回收性能优势(除insert共享表空间略有优势外,其他方面独立表空间都表现更好)