表类型为Myisam,已建立一个索引,所以应该是产生了大量碎片,使用 Optimize table 表名 优化后大小变为2.19M,少了很多, 同时可以看出该表上的索引建的多余,因为插入操作比查询操作要多很多...借此延伸下MYSQL中Myisam、InnoDB碎片优化方式:
Myisam清理碎片
OPTIMIZE TABLE table_name
InnoDB碎片优化
if you frequently delete...什么是mysql碎片?怎样知道表的碎片有多大呢?...OPTIMIZE 操作会暂时锁住表,而且数据量越大,耗费的时间也越长,它毕竟不是简单查询操作.所以把 Optimize 命令放在程序中是不妥当的,不管设置的命中率多低,当访问量增大的时候,整体命中率也会上升...,这样肯定会对程序的运行效率造成很大影响.比较好的方式就是做个 Script,定期检查mysql中information_schema.TABLES字段,查看 DATA_FREE 字段,大于0话,就表示有碎片