ecshop后台会员留言加载速度慢的问题

2011-06-15 22:56 来源:www.chinab4c.com 作者:ecshop专家

     前段时间帮朋友做后台开发,发现一个问题,ecshop后台留言板里面,当留言的数量太多,或者是留言超过了500条。其实就容易出问题,这样的话非常麻烦,因为ecshop后台会员留言包括几大内容,一个是商品信息留言,采购,求购,投诉等。另外一个就是ecshop订单的留言,这个留言特别重要,也特别难处理。往往因为这些数据,会造成一些速度上的困难。

     首先我们分析下ecshop后台会员留言的组成,首先在列表页面还必须列表出留言的数量,还必须分页这样就造成了数据的负载严重。最大的问题是在ecshop后台必须是统计到该留言的回答数量大于1.才表示是回复过的。

     ecshop为了偷懒。直接通过left join去统计回复数量。结果浪费了很多资源,引起数据量很小就造成资源耗费严重。将代码修改成以下。将减少负载.

     $sql = "SELECT f.msg_id, f.user_name, f.msg_title, f.msg_type, f.order_id, f.msg_status, f.msg_time, f.msg_area " .
            "FROM " . $GLOBALS['ecs']->table('feedback') . " AS f WHERE f.parent_id = 0 $where " .
            "GROUP BY f.msg_id ".
            "ORDER by $filter[sort_by] $filter[sort_order] ".
            "LIMIT " . $filter['start'] . ', ' . $filter['page_size'];

      然后可以通过$msg_list[$key]['reply'] = $db -> getOne("select count(msg_id) reply from  ".$GLOBALS['ecs']->table('feedback')." where parent_id ='".$value['msg_id']."'");统计某个留言的回复数量。这样就达到了处理ecshop后台会员留言加载速度慢的问题的目的。

     来源:http://www.chinab4c.com