huanayun
hengtianyun
vps567
莱卡云

ECSHOP处理ecs_stats表空间过大的处理方法(自动删除访问统计) -云主机博士

PikPak

推荐阅读:

[AI-人工智能]免翻墙的AI利器:樱桃茶·智域GPT,让你轻松使用ChatGPT和Midjourney - 免费AIGC工具 - 拼车/合租账号 八折优惠码: AIGCJOEDISCOUNT2024

[AI-人工智能]银河录像局: 国内可靠的AI工具与流媒体的合租平台 高效省钱、现号秒发、翻车赔偿、无限续费|95折优惠码: AIGCJOE

[AI-人工智能]免梯免翻墙-ChatGPT拼车站月卡 | 可用GPT4/GPT4o/o1-preview | 会话隔离 | 全网最低价独享体验ChatGPT/Claude会员服务

[AI-人工智能]边界AICHAT - 超级永久终身会员激活 史诗级神器,口碑炸裂!300万人都在用的AI平台

ECSHOP开启站点访问统计后,随着时间的推移,访问记录表stats越来越大,直到空间爆满,网站瘫痪。ECSHOP的计划任务“浏览日志删除”需开 启“是否开启命令行调用计划任务”,不少朋友使用国内虚拟主机,虚拟主机对函数限制过多,计划任务形同摆设。本文讲解如何按系统设定自动删除访问统计,减少stats表的负载。
ECSHOP处理ecs_stats表空间过大的处理方法(自动删除访问统计) -云主机博士 第1张

一、修改数据库,加入删除访问统计的时间配置的字段值”ipdel”

UPDATE ecs_shop_config SET sort_order = 2 WHERE code = "visit_stats";
INSERT INTO ecs_shop_config (id, parent_id, code, type, store_range, store_dir, value, sort_order) VALUES
(247, 2, 'ipdel', 'select', '0,1,2,3,4,5', '', '0', 2);

二、/languages/zh_cn/adMin/shop_config.php中添加

$_LANG['cfg_name']['ipdel']= '自动删除访问统计';
$_LANG['cfg_range']['ipdel']['0'] = '永不删除';
$_LANG['cfg_range']['ipdel']['1'] = '7天前';
$_LANG['cfg_range']['ipdel']['2'] = '30天前';
$_LANG['cfg_range']['ipdel']['3'] = '90天前';
$_LANG['cfg_range']['ipdel']['4'] = '180天前';
$_LANG['cfg_range']['ipdel']['5'] = '360天前';
$_LANG['cfg_desc']['ipdel'] = '由前台用户触发,“站点访问统计”设为开启时才可使用此功能。';

三、/includes/lib_main.php中访问统计信息函数function visit_stats()结束前添加

/* 按系统设定删除访问统计 */
ipdel_day = 0;
switch (ipdel 
d
	
 ay=0;switch(GLOBALS['_CFG']['ipdel'])
{
case '0': // 永不删除
ipdel_day = 0;
break;
case '1': // 7天前ipdel 
d
	
 ay=0;break;case 
′
 1 
′
 ://7天前ipdel_day = 7;
break;
case '2': // 30天前
ipdel_day = 30;
break;
case '3': // 90天前ipdel 
d
	
 ay=30;break;case 
′
 3 
′
 ://90天前ipdel_day = 90;
break;
case '4': // 180天前
ipdel_day = 180;
break;
case '5': // 360天前ipdel 
d
	
 ay=180;break;case 
′
 5 
′
 ://360天前ipdel_day = 360;
break;
}
if(ParseError: KaTeX parse error: Expected '}', got 'EOF' at end of input: ipdel_day)
{deltime = gmtime() - ipdel_day * 3600 * 24;ipdel 
d
	
 ay∗3600∗24;ipdel_sql = "DELETE FROM " . ecs->table('stats') .
"WHERE access_time<'ecs−>table( 
′
 stats 
′
 )."WHEREaccess 
t
	
 ime< 
′
 deltime'";
db->query(db−>query(ipdel_sql); 
}
else
{
return;
}

取消这个插件,数据库写法是这样:

delete from ecs_shop_config where code="ipdel";

"ecs_"是表前缀。

下面是两种解决ecs_stats数据库表大的办法:
一、直接关闭:网站后台--系统设置--商店设置--基本设置--站点访问统计:关
二、备份前删除表记录:

delete from ecs_stats;

宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取

bwg Vultr justhost.asia racknerd hostkvm pesyun Pawns


本文标签属性:

ECSHOP:Ecshop2.7.3拿shell

原文链接:,转发请注明来源!