ecshop后台商品分页缺陷改进
2012-10-12 09:07 来源:www.chinab4c.com 作者:ecshop专家
ecshop后台商品分页缺陷改进,这个看似简单的东西,但是实现起来却十分复杂。我们知道在ecshop后台管理商品的后台商品列表中,如果商品数据非常少,那么不是问题。如果在ecshop中,把几百万的商品存储在ecshop的ecs_goods表中的时候,你去分页,那么翻到最后几页的时候,你就发现十分痛苦了。
来分析下ecshop后台商品列表分页代码,如果你是按照从第一到最后,那么他是类似这样的结构。
select * from ecs_goods where is_delete=0 and is_real=1 $where limit $start, $pagesize;当我们翻到最后几页,也就是形成了select * from ecs_goods where is_delete=0 and is_real=1 $where limit 22222222, 10 这个时候就算你走索引,那也是非常慢的。
这个时候,我们可以先找到这个起点,我们可以先检索出要排序的good_id,那么然后在做内链,就可以快速的找到要查询的数据了。
$sql = " SELECT g.goods_id, goods_name, goods_type, goods_sn, shop_price, is_on_sale, is_best, is_new, is_hot, sort_order, goods_number, integral, " .
" (promote_price > 0 AND promote_start_date <= '$today' AND promote_end_date >= '$today') AS is_promote from ( SELECT goods_id from ".$GLOBALS['ecs']->table('goods')." WHERE is_delete='$is_delete' $where ORDER BY $filter[sort_by] $filter[sort_order] LIMIT " . $filter['start'] . ",$filter[page_size]) g1 , ".$GLOBALS['ecs']->table('goods')." g where g1.goods_id = g.goods_id ORDER BY $filter[sort_by] $filter[sort_order]";
修改成这个方式,我们发现,在ecshop默认的分页中,需要2分钟,我们现在只需要0.8秒就搞定。大大的ecshop商品分页缺陷改进。
来源:http://www.chinab4c.com
最近更新
常用插件
- ecshop通用红包编码
很多时候,为了结合促销,必须扩展一下ecshop的红包功能。ecshop的红包...
- ecshop购物车功能改进[插件
ecshop购物车功能改进[插件套餐]主要是我们最近开发工作和开发项目中。...
- ecshop分类树中统计商品数
最近忙于开发其他项目,在不少朋友不断要求和催促的情况下,做出了该小...
- ecshop红包修改成满多少减
我们在长期使用ecshop的时候,我们可以发现。ecshop的红包是一个非常强...
- ecshop降价通知登记插件
ecshop降价通知登记插件,主要是为了方便某些客户,对商品价格要求比...