1. 这个参数设置为 OFF 表示的是,表的数据放在系统共享表空间,也就是跟数据字典放 在一起;
2. 这个参数设置为 ON 表示的是,每个 InnoDB 表数据存储在一个以 .ibd 为后缀的文件 中。
从 MySQL 5.6.6 版本开始,它的默认值就是 ON 了。
我建议你不论使用 MySQL 的哪个版本,都将这个值设置为 ON。因为,一个表单独存储 为一个文件更容易管理,而且在你不需要这个表的时候,通过 drop table 命令,系统就会 直接删除这个文件。而如果是放在共享表空间中,即使表删掉了,空间也是不会回收的。
实际上,不止是删除数据会造成空洞,插入数据也会。 如果数据是按照索引递增顺序插入的,那么索引是紧凑的。但如果数据是随机插入的,就可能造成索引的数据页分裂。
也就是说,经过大量增删改的表,都是可能是存在空洞的。所以,如果能够把这些空洞去 掉,就能达到收缩表空间的目的。
而重建表,就可以达到这样的目的。
原文:https://www.cnblogs.com/lamp01/p/12149564.html