当前位置:首页 > 技术教程 > dede技术教程 > 正文内容

dedecms织梦数据量达到万级后 生成速度很慢解决办法

访客4年前 (2020-11-16)dede技术教程6442

织梦由于生成静态文件原因及系统架构本身的原因,当数量达到万级别后,生成栏目及文档相当缓慢,今天秀站网介绍下,通过改动系统文件来提升生成速度,修改之前请大家做好织梦程序的备份。

1、先设置 关闭副栏目(在系统—-系统基本参数—性能选项里)

2、一般网站不需要 栏目交叉 交叉 所以 找到94行注释掉:

打开:include/arc.listview.class.php

找到以下代码并注释(注释代码为:/*代码*/):

//获得交叉栏目ID            /*if($this->TypeLink->TypeInfos['cross']>0 && $this->TypeLink->TypeInfos['ispart']==0)            {                $selquery = '';                if($this->TypeLink->TypeInfos['cross']==1)                {                    $selquery = "SELECT id,topid FROM `xiuzhanwang_arctype` WHERE typename LIKE '{$this->Fields['typename']}' AND id<>'{$this->TypeID}' AND topid<>'{$this->TypeID}'  ";                }                else                {                    $this->Fields['crossid'] = preg_replace('/[^0-9,]/', '', trim($this->Fields['crossid']));                    if($this->Fields['crossid']!='')                    {                        $selquery = "SELECT id,topid FROM `xiuzhanwang_arctype` WHERE id in({$this->Fields['crossid']}) AND id<>{$this->TypeID} AND topid<>{$this->TypeID}  ";                    }                }                if($selquery!='')                {                    $this->dsql->SetQuery($selquery);                    $this->dsql->Execute();                    while($arr = $this->dsql->GetArray())                    {                        $this->CrossID .= ($this->CrossID=='' ? $arr['id'] : ','.$arr['id']);                    }                }            }*/ 

继续查找并注释:

//获得附加表的相关信息  /*$addtable  = $this->ChannelUnit->ChannelInfos['addtable'];        if($addtable!="")        {            $addJoin = " LEFT JOIN `$addtable` ON arc.id = ".$addtable.'.aid ';            $addField = '';            $fields = explode(',',$this->ChannelUnit->ChannelInfos['listfields']);            foreach($fields as $k=>$v)            {                $nfields[$v] = $k;            }            if(is_array($this->ChannelUnit->ChannelFields) && !empty($this->ChannelUnit->ChannelFields))            {                foreach($this->ChannelUnit->ChannelFields as $k=>$arr)                {                    if(isset($nfields[$k]))                    {                        if(!empty($arr['rename'])) {                            $addField .= ','.$addtable.'.'.$k.' as '.$arr['rename'];                        }                        else {                            $addField .= ','.$addtable.'.'.$k;                        }                    }                }            }        }        else        {            $addField = '';            $addJoin = '';        }*/

声明:
本站大部分资源收集于网络,只做学习和交流使用,版权归原作者所有。
若您需要使用非免费的软件或服务,请购买正版授权并合法使用!
本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理!

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。