发新话题
打印

[原创]viewContent 耗费内存过多的一个BUG

[原创]viewContent 耗费内存过多的一个BUG

还是mambo4.5.2.3中文版。问题出在admin.content.php的viewContent子程序里。

在脚本文件第200行有这行代码:
$query = "SELECT c.*, g.name AS groupname, cc.name, u.name AS editor, f.content_id AS frontpage, s.title AS section_name, v.name AS author"

数据库在处理SELECT c.* 时,会把content表里所有东西弄到内存里,如果你的表足够大,内存会不够用,服务就挂了。这段代码中,content表中fulltext、introtext在子程序里都没有用到,我们可以不检索这些字段。

这几天调试后台,我暂时改成这样:
        //$query = "SELECT c.*,
        $query = "SELECT c.id, c.title, c.state, c.sectionid, c.mask, c.catid, c.created, c.created_by,
        c.checked_out, c.publish_up, c.publish_down, c.ordering , c.access,
        g.name AS groupname, cc.name, u.name AS editor, f.content_id AS frontpage, s.title AS section_name, v.name AS author"

建议把content表中除fulltext和introtext所有字段都SELECT出来,我只用了一部分,字段列得不全,可能会有安全漏洞。

PS:改过之后,列表速度可以提高很多,因为排序时的数据量少了很多。

TOP

没错!一般作者懒得一个个挑选字段,都习惯用 * 通配符。

text 类型的字段很占用资源,记录多的话速度就很慢。

TOP

在FRONTPAGE里发现一个同样的错误,也是个潜在的隐患,我已经改过了。
引用:
原帖由 lang3 发表
没错!一般作者懒得一个个挑选字段,都习惯用 * 通配符。

text 类型的字段很占用资源,记录多的话速度就很慢。

TOP

h好的..这样修改试试kanka看

TOP

好像没有多大变化啊

我的content表有2W条记录

TOP

发新话题