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; // 最大的缓存时间,以秒为单位
简单的一些设置,某些程度上有些帮助,算菜鸟入门级吧