WordPress4.9.10 wp_options表大小在PHP5.6下变得越来越大

时间:2019-07-04 02:00:36

标签: mysql wordpress

我的客户端的WordPress4.9.10和WP wp_options表大小在PHP5.6和mySQL版本5.0.11下变得越来越大。 行数为192,但表大小却像1.2GB一样无限增加。 我使用以下sql计算了表的大小。

SELECT 
     table_schema as `Database`, 
     table_name AS `Table`, 
     round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` 
FROM information_schema.TABLES 
ORDER BY (data_length + index_length) DESC;

似乎表的大小每天都在增加约50MB。 但是没有添加新行。

我在下面运行了SQL,删除了不必要的_transient_%记录,但根本没有运气。

DELETE FROM wp_options WHERE option_name LIKE '_transient_%';

我还禁用并删除了不必要的插件和主题。 WP当前具有以下插件:

  • 多合一SEO包(3.1.1)
  • 联系表格7(5.1.3)
  • 自定义帖子类型生成器(2.4.2)
  • 自定义帖子类型用户界面(1.6.2)
  • PDF Embedder(4.2)
  • TablePress(1.9.2)
  • WP Olive Cart Pro(3.2.6)
  • WP-PageNavi(2.93)

任何人都知道发生了什么以及如何解决此问题?

最好

1 个答案:

答案 0 :(得分:1)

巨大的Wordpress数据库修复

将远程MySQL端口绑定到本地端口3304

(用正确的用户名和主机名替换下面的username@example.com;如果您使用密码连接SSH,请删除-i server.pem

在本地运行此命令以绑定到远程端口:

ssh -i server.pem -L 3304:127.0.0.1:3306 username@example.com

连接MySQL Workbench

使用以下详细信息进行连接:

hostname: localhost
port: 3304
user: root
password: <database-password-here>

检查wp_options表大小

在MySQL Workbench中运行此查询,并查看第一行的大小:

SELECT
  table_schema AS `Database`,
  table_name AS `Table`,
  round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`
FROM information_schema.TABLES
ORDER BY (data_length + index_length) DESC;

删除瞬态条目

(用下面的数据库名称替换下面命令中的<database-name>;默认为wordpress

运行此查询以删除临时记录:

DELETE FROM <database-name>.wp_options
WHERE option_name LIKE '%transient%';

优化wp_options

在终端中,按此顺序运行两次,两次(它将要求每个命令输入密码):

mysqlcheck -p -c <database_name> wp_options
mysqlcheck -p -o <database_name> wp_options
mysqlcheck -p -a <database_name> wp_options

验证wp_options表大小

返回MySQL Workbench并仔细检查表大小:

SELECT
  table_schema AS `Database`,
  table_name AS `Table`,
  round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`
FROM information_schema.TABLES
ORDER BY (data_length + index_length) DESC;

清除数据库二进制日志

运行此查询以清除二进制日志:

PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 1 DAY);