高级优化-将变量代码写死减少查询

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家

ecshop是使用模板引擎机制实现前台效果(不知说得是否对),所以在ecshop的模板里有大量的地方是对数据库进行查询调取数据来应用。

我现在利用一个小小的查询来开篇今天的教程。如果按标准的seo设置模板中的产品详情页、分类页等title部分,会写到如此一个代码{$shop_name},代码的是商店名称,模板会查询数据库里的商店名称来填上模板。

尽管这样的查询对于服务器来说是很小的一个运算,但我们如果优化到后期,任何小的优化都是可以完善的,所以能减少这样的查询无疑对整体网站性能有很一定的优化提升。还有些朋友会说,ecshop有自己的缓存机制,所以其实不是每次打开网页服务器都会进行查询。然而作为一个运营成熟的网站,每天更新内容是必不可少,这时我们就势必不能缓存太久时间,比如泰摩网球的缓存就是24小时。而超过缓存时间后打开网页,当然又会让服务器重新运行一次查询。

那怎么能减少这样的查询而实现降低服务器压力性能得到优化呢?很简单,将{$shop_name}这样需要查询的变量写成定量。譬如在模板里有这样代码的地方,我全部写上“泰摩网球”,模板就不需要对数据库进行查询。当然,实际上只有是在运营中的网站可以用这样的应用来优化,因为它只适合单独对应的网站。

其实,仅仅将以上一个变量代码写死对整站的优化起到的是微不足道的作用。然而,我仅仅是将其举了个例子,毕竟各个网站各个模板不尽相同,我无法知道有哪些变量可以完全写死。

但是有一个可以写死的变量绝对值得大家去尝试,那就是网站的底部共用代码。如泰摩网站的底部:

这一部分是每个页面都会调用的,基本上在运营半年以上后,你会发现这样的底部共用代码完全不用再修改,是很固定的。但是它需要进行大量的数据库查询。

减少这部分查询的方法是:用IE打开源代码,复制这一部分的完整代码,粘贴到模板底部footer.lbi适当位置。这样,每一个用户在打开网站每一个页面时都减少了底部文件的查询。

究竟这样优化的效果有多少呢?以我的观察,效果是很大的。进行如此的优化后,感觉CPU占用率明显降低。尽管没有确切的数字直观反映,但是无论是理论上还是亲自试验都感觉出了明显区别。

事实上我也仅仅是抛砖引玉,还有更多如此的变量可以通过写死代码以达到网站性能的最大优化。而网站的优化正是靠着点点滴滴的量的改变而形成质的变化。