3 回答
TA贡献1883条经验 获得超3个赞
一种可能性是您看到有关表大小的统计数据不正确。
MySQL 8.0 尝试缓存有关表的统计信息,但在实现中似乎存在一些错误。有时它会将表统计信息显示为 NULL,有时它会显示值,但在您修改表数据时无法更新它们。
例如,参见https://bugs.mysql.com/bug.php?id=83957,一个讨论这种缓存行为问题的错误。
您可以禁用缓存。它可能会导致对 INFORMATION_SCHEMA 或 SHOW TABLE STATUS 的查询慢一点,但我想它不会比 8.0 之前的 MySQL 版本差。
SET GLOBAL information_schema_stats_expiry = 0;
整数值是 MySQL 缓存统计信息的秒数。如果您查询表统计信息,您可能会看到缓存中的旧值,直到它们过期并且 MySQL 通过从存储引擎读取来刷新它们。
缓存过期的默认值为 86400,即 24 小时。这似乎太过分了。
如果您认为 Wordpress 正在写入表格,那么它可能是。您可以启用二进制日志或查询日志来查找。或者只是观察SHOW PROCESSLIST
几分钟。
您可能有一个经常更新或插入表格的 wordpress 插件。您可以查找最新的update_time:
SELECT * FROM INFORMATION_SCHEMA.TABLES ORDER BY UPDATE_TIME DESC LIMIT 3;
观看此内容以找出最近写入的表。
此 UPDATE_TIME 统计数据有一些注意事项。它并不总是与更新表的查询同步,因为写入表空间文件是异步的。在这里阅读:https : //dev.mysql.com/doc/refman/8.0/en/tables-table.html
TA贡献1898条经验 获得超8个赞
某些插件无法自行清理。追查您在问题开始时添加的插件。查看行中options
是否有进一步暗示特定插件的线索。
不,MySQL 的统计数据等无法解释计算中的 27GB '错误'。再多的OPTIMIZE TABLE
, 等也无法解决其中的一小部分。您需要删除大部分行。向我们展示一些最近的行(高AUTO_INCREMENT
id)。
- 3 回答
- 0 关注
- 175 浏览
添加回答
举报