ShopXO自动删除搜索结果目录操作方法
现在互利网太多AI爬虫了,ShopXO里的搜索结果日志会把数据库空间占满,接下来教大家如何设置自动化删除。
本文用到phpMyAdmin面板执行如下命令
准备前操作:
1、登录 phpMyAdmin,左侧选中你的目标数据库,顶部切换到【SQL】标签
2、执行查询,查看调度器状态:
SHOW VARIABLES LIKE 'event_scheduler';
显示:
Value=ON:已开启,直接下一步
Value=OFF:执行临时开启(MySQL 重启后失效)
临时开启命令(这里不建议用这个方法,因为这是临时开启,服务器重启后时效):SET GLOBAL event_scheduler = ON;
永久开启(服务器重启不失效):
Linux:编辑my.cnf;Windows:编辑my.ini
在[mysqld]区块添加:
event_scheduler=ON
保存后重启 MySQL 服务,再次验证状态为 ON。
方式一:phpMyAdmin 可视化界面配置定时清空
1、选中数据库 mall_kxkx_net,看顶部导航栏,找到 事件 标签(调度器开启后才会显示);
2、点「添加事件」,按下面填写:
2.1、事件名称:clear_sxo_search_history(自定义)
2.2、状态:ENABLE
2.3、事件类型:RECURRING(重复循环)
周期示例:
每天凌晨 0 点清空:周期 = 天,间隔 = 1,起始时间设次日 0 点
每 6 小时清空:周期 = 小时,间隔 = 6
2.4、终止时间:留空 = 永久执行
2.5、定义框内粘贴 SQL(二选一)
-- 方案1:彻底清空,重置自增ID,速度快
TRUNCATE TABLE `sxo_search_history`;
-- 方案2:只删数据,保留自增ID序号
DELETE FROM `sxo_search_history`;
3、拉到页面最底部,点「执行」,定时任务就创建完毕。
方式二:直接 SQL 一键创建(最省事)
还是在顶部 SQL 面板执行,复制整条运行,不用手动填表单。
复制下方代码直接进SQL面板执行即可
示例 A:每日凌晨 0 点清空搜索记录表
-- 先删旧事件避免冲突
DROP EVENT IF EXISTS `clear_sxo_search_history`;
CREATE EVENT IF NOT EXISTS `clear_sxo_search_history`
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_DATE + INTERVAL 1 DAY AT '00:00:00'
ON COMPLETION PRESERVE ENABLE
COMMENT '定时清空搜索历史表sxo_search_history'
DO
TRUNCATE TABLE `sxo_search_history`;
示例 B:每 2 小时清空一次
DROP EVENT IF EXISTS `clear_sxo_search_history`;
CREATE EVENT IF NOT EXISTS `clear_sxo_search_history`
ON SCHEDULE EVERY 2 HOUR
ON COMPLETION PRESERVE ENABLE
DO
TRUNCATE TABLE `sxo_search_history`;
接下来顺便给大家说下SQL的常用命令
1、查看当前所有定时事件:SHOW EVENTS;
2、临时暂停定时任务:ALTER EVENT `clear_sxo_search_history` DISABLE;
3、重新启用:ALTER EVENT `clear_sxo_search_history` ENABLE;
4、删除定时任务:DROP EVENT IF EXISTS `clear_sxo_search_history`;