起因:查看线上数据库中Table Information时发现有一个日志表数据大小和索引大小有915M,但实际行数只有92行。该表需要频繁插入并且会定时去删掉旧的记录。...简单的说,删除数据必然会在数据文件中造成不连续的空白空间,而当插入数据时,这些空白空间则会被利用起来.于是造成了数据的存储位置不连续,以及物理存储顺序与理论上的排序顺序不同,这种是数据碎片.实际上数据碎片分为两种...前者的意思就是一行数据,被分成N个片段,存储在N个位置.
后者的就是多行数据并未按照逻辑上的顺序排列....当有大量的删除和插入操作时,必然会产生很多未使用的空白空间,
这些空间就是多出来的额外空间.索引也是文件数据,
所以也会产生索引碎片,理由同上,大概就是顺序紊乱的问题.Engine 不同,OPTIMIZE....脚本多长时间运行一次,可以根据实际情况来定,比如每周跑一次.