站长视角
用户至上

WordPress MySQL 数据库清除巨型表 wp_actionscheduler_actions 和 wp_actionscheduler_logs教程

WordPress MySQL 数据库中出现了两个巨型表 wp_actionscheduler_actions 和 wp_actionscheduler_logs。其中 wp_actionscheduler_actions 用来记录计划任务;wp_actionscheduler_logs  用来记录任务日志。

这两个数据表一般认为是由 WooCommerce 自动创建,小编认为大概率是因为某个插件的定时任务失败,不停的往数据表增加任务,最终产生两个巨型表。这两个表用处不大,可以直接手动清空这两个数据表,也可以根据下面的方法来解决这个问题。

#登录数据库,注意自行替换下面命令中的yourdatabase,这个是数据库名。
mysql -u root -p yourdatabase
#输入数据库root密码,然后回车进入数据库。
#清空wp_actionscheduler_logs数据表,注意自行替换wp_表前缀。
TRUNCATE `wp_actionscheduler_logs`;
#然后分别执行下面三行命令,注意自行替换wp_表前缀。
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'complete';
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'canceled';
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'failed';

根据上面的方法清理只是治标没能治本,可以通过以下两个方法来彻底清理。

方法一

// 每日自动清理数据表 Scheduled Actions
add_filter( 'action_scheduler_retention_period', 'cw_action_scheduler_purge_daily' );
function cw_action_scheduler_purge() {
return DAY_IN_SECONDS;
}
// 每周自动清理数据表 Scheduled Actions
add_filter( 'action_scheduler_retention_period', 'cw_action_scheduler_purge_weekly' );
function cw_action_scheduler_purge() {
return WEEK_IN_SECONDS;
}

上面这两段 PHP 代码二选一添加到主题的 funcations.php 文件中即可。因为两段代码功能相同,区别是执行时间周期,一个是每日自动清理,另一个是每周自动清理,具体可以根据你数据表的增量速度自行决定。

方法二

#!/bin/bash
user=
password=
database=
host=

echo 'TRUNCATE `wp_actionscheduler_logs`;' | mysql --user="$user" --password="$password" --database="$database" --host="$host"
echo 'DELETE FROM `wp_actionscheduler_actions` WHERE `status` = "complete";' | mysql --user="$user" --password="$password" --database="$database" --host="$host"
echo 'DELETE FROM `wp_actionscheduler_actions` WHERE `status` = "canceled";' | mysql --user="$user" --password="$password" --database="$database" --host="$host"
echo 'DELETE FROM `wp_actionscheduler_actions` WHERE `status` = "failed";' | mysql --user="$user" --password="$password" --database="$database" --host="$host"

最后再给大家一个自动清理数据表的shell脚本,把上面这段脚本代码复制到 xxx.sh 文件(脚本名称自己随便起一个),然后在linux主机中添加定时任务即可bash /dir/xxx.sh,执行周期自己随意安排。上面的脚本中需要你自行填写数据库用户名、数据库用户密码、数据库名、数据库主机地址

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权, 转载请注明出处。
文章名称:《WordPress MySQL 数据库清除巨型表 wp_actionscheduler_actions 和 wp_actionscheduler_logs教程》
文章链接:https://cnidc.co/48181.html
【声明】:国外主机测评仅分享信息,不参与任何交易,也非中介,所有内容仅代表个人观点,均不作直接、间接、法定、约定的保证,读者购买风险自担。一旦您访问国外主机测评,即表示您已经知晓并接受了此声明通告。
【关于安全】:任何 IDC商家都有倒闭和跑路的可能,备份永远是最佳选择,服务器也是机器,不勤备份是对自己极不负责的表现,请保持良好的备份习惯。

登录

找回密码

注册