更新语句:update t1 set k=’aaa’;
更新前长度:223 Data_free:0
更新后长度:3 Data_free:204
Data_free 不为 0,说明有碎片;
产生影响:
1. 由于碎片空间是不连续的,导致这些空间不能充分被利用;
2. 由于碎片的存在,导致数据库的磁盘 I/O 操作变成离散随机读写,加重了磁盘 I/O 的负担。
清理办法:
1. ALTER TABLE tablename ENGINE=InnoDB;(重建表存储引擎,重新组织数据)
2. 进行一次数据的导入导出
碎片清理的性能对比:
引用我之前一个生产库的数据,对比一下清理前后的差异。
空间对比:
库名 | 清理前大小 | 清理后大小 |
---|
facebook | 2.2G | 1.1G |
instagram | 40G | 22G |
linkedin | 555M | 208M |
googleplus | 19G | 8.4G |
twitter | 107G | 44G |
SQL执行速度: