mysql 碎片整理
mysql中information_schema.tables字段说明
data_free是空间碎片,单位是B。产生原因;
(1)记录被Delete,且原空间无法复用;
(2)记录被Update(通常出现在变长字段中,varchar,text),原空间无法复用;
data_length是数据长度,是所存数据的存储占用量
index_length是索引长度,是索引所占的存储空间
| 字段 | 含义 | 
| table_catalog | 数据表登记目录 | 
| table_schema | 数据表所属的数据库名 | 
| table_name | 表名称 | 
| table_type | 表类型[system view|base table] | 
| engine | 使用的数据库引擎[MyISAM|CSV|InnoDB] | 
| version | 版本,默认值10 | 
| row_format | 行格式[Compact|Dynamic|Fixed] | 
| table_rows | 表里所存多少行数据 | 
| avg_row_length | 平均行长度 | 
| data_length | 数据长度 | 
| max_data_length | 最大数据长度 | 
| index_length | 索引长度 | 
| data_free | 空间碎片 | 
| auto_increment | 做自增主键的自动增量当前值 | 
| create_time | 表的创建时间 | 
| update_time | 表的更新时间 | 
| check_time | 表的检查时间 | 
| table_collation | 表的字符校验编码集 | 
| checksum | 校验和 | 
| create_options | 创建选项 | 
| table_comment | 表的注释、备注 | 
阿里RDS的计算方法:
表空间=data_length+index_length+data_free
碎片率=data_free/表空间

碎片整理
如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有VARCHAR, BLOB或TEXT列的表)进行了很多更改,则应使用
OPTIMIZE TABLE。被删除的记录被保持在链接清单中,后续的INSERT操作会重新使用旧的记录位置。您可以使用OPTIMIZE TABLE来重新
利用未使用的空间,并整理数据文件的碎片。
在多数的设置中,您根本不需要运行OPTIMIZE TABLE。即使您对可变长度的行进行了大量的更新,您也不需要经常运行,每周一次或每月一次
即可,只对特定的表运行。
OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用。
注意,在OPTIMIZE TABLE运行过程中,MySQL会锁定表。
    运维
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号