最近访客
百度未收录

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

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

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 `dede_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 `dede_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 = \'\';
        }*/
温馨提示:本文最后更新于2022/10/20 02:47:02。若文章内容或图片失效,请留言联系站长反馈!
!
也想出现在这里? 联系我们
创意广告
© 版权声明
THE END
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容