头像

ecshop网店系统百万级商品量性能优化-一些简单的Cache内存配置

ECshop网店系统对于产品的数据、模板、Query都可以缓存,也就是把一些商品详情页、分类页、Search页的数据经过一次访问后,用文件的形式保存下来,下次有人访问相同的页面时,不用再查数据库,直接读取Cache展示出来,减少服务器数据库压力。

这样的做法的确可以加速访问,减少资源浪费,对于流量比较大,或者页面重复访问Hit Rate比较高的很有用,但这个也只能解决一部分问题,对于一个有几十万商品的ECshop网店来说,最大的压力不是来自于自然访问的流量,而是勤劳的Google Bot或者Bing的Bot,一天几万的高频度抓取,会让你的系统响应极慢甚至崩溃

由于偶的ECshop是测试站,不以实际交易为目的的,有些设置比较夸张,大家懂的,根据实际情况自行调整吧。

第一步简单的优化,根据实际情况调整模板Cache时间

在程序includes目录下,有个cls_template.php的文件,打开,找到以下设置项,看你期望更新的时间,默认1个小时,由于我的商品变更很小,设置了40个小时,144000秒。

var $cache_lifetime = 144000; // 缓存更新时间, 默认 3600 秒

第二步,调整ECshop可占用的内存,商品数量大的时候,内存可能不够用,适当增大内存

在程序includes目录下,有个init.php文件,打开,根据你服务器的情况,适当调整,我设置的是256M,大概50W商品没有问题。

@ini_set(‘memory_limit’,          ‘256M’);

第三步,调整SQL Cache时间,减少数据库查询,加快响应速度

在程序includes目录下,有个cls_mysql.php文件,找到以下设置项修改,我是缓存24小时

var $max_cache_time = 86400; // 最大的缓存时间,以秒为单位

头像

ecshop在大数据量上的速度优化

简介:ecshop在大数据量下的速度优化,让你的ecshop大型网站速度飞起来

解决ecshop在50w条商品数据上速度慢的问题,如果你的网站的数据在10W条以下,速度还不错的话就没必要考虑这个方案,这个方案适用于ecshop的海量数据性能大幅下降的问题

本人处理过的ecshop数据50多万,属性表也400多万:

我们的优化方案从以下四个方面入手:

1、ecshop的数据结构优化入手,增加部分字段以优化查询性能

2、优化ecshop代码中的sql语句,很多sql语句是有优化空间的

3、myql读写分离,一主多从,需要是独立主机,我目前实施过的方案是一主三从读写分离,速度飞快

4、引处memcached,扔掉原来的物理文件的缓存方式,可以大大的提高速度

以上四方面做好了,我不信你的速度还上不来