删除后不会立即更新表的Mysql大小

时间:2014-09-02 12:09:40

标签: mysql sql

我有一个数据库,其中包含多个应用程序的Logentries。 现在我写了一个bash-Script,它应该删除超出大小限制的最早的一天。 我有一个循环,每天删除一天,直到实际大小小于限制。 但是在删除语句之后,表的大小没有正确更新。

我使用了这个Sql语句

'SELECT round(((data_length + index_length)), 0) "Size in Bytes" FROM information_schema.TABLES WHERE table_schema = "Log" AND table_name = "Log";'

确定实际表格大小。 如何在删除命令后强制MySql立即重新调整此大小?

2 个答案:

答案 0 :(得分:7)

运行

 OPTIMIZE TABLE Log

删除后。这将更新索引统计信息(并释放所有未使用的磁盘空间btw)。

答案 1 :(得分:2)

ANALYZE TABLE tableName;

这也可以刷新表统计信息。

参考:https://dev.mysql.com/doc/refman/8.0/en/analyze-table.html