首页 > CMS > 动易CMS > 正文

为什么动网要比动易快得多?

2024-09-10 21:53:38
字体:
来源:转载
供稿:网友


问题:拿10万文章的动易系统和10万主题的动网论坛相比,都是采用动态页面,单就资源占用来说,相同的服务器动网可以迅速访问,而用动易的服务器早就死机了。假如动易不重视这个问题会很危险的。后果会很严重。

解答:让我们来分析一下同样的数据量时,动网论坛为什么快,而动易相当占资源。

  1、10万主题的论坛的数据量,看起来很大,但因为90%的贴子可能只有几个字,查询时与10万篇平均1000字的文章比起来,所占用内存等会相差多大?另外,动网的前台显示基本上是没有显示内容的,而动易的显示是可以自定义显示内容,许多网站也正使用了这一点,这一项功能比起来,动易就根本不可能达到动网的“快”,因为完全是不同的应用,不同的数据模式,不同的设计思想。

  2、再来看每个页面。动易比动网慢的页面只有两种页面:首页和大类栏目页。

  先看首页,动网的首页主体部分只显示了一级栏目的信息,这只需要一次查询即可,只相当于动易首页的栏目导航或顶部栏目菜单中的一级栏目部分,动易相比较而言,在首页不仅显示了一级栏目,所有的栏目都显示了。另外最重要的是,动易首页的每个栏目都还要查询数据库,以显示每个栏目的文章列表。假如是在网站首页,这些栏目还可能跨频道,这样为了得到正确的路径,还要查询相应的频道设置等。这样多的功能,还要求达到论坛首页一样的速度?同样在首页,公告、友情链接、调查、统计等其他功能,动易一项不少,这些都需要查询数据库,当然也要消耗一些资源。首页是大家访问最多的页面,就算是同样的数据,因为动易相对来说,因为要显示每个栏目的文章列表,这样每个栏目要多一次查询,20个栏目就要多20次查询,当然会比论坛首页慢多了。假如把动易首页的显示样式改为论坛一样,动易至少可以提速几十倍。但改成论坛的首页样式,还是网站的首页吗?

  再看大类栏目页,动网论坛仍是只显示子栏目的信息,只需一个查询即可,只相当于动易大类栏目页的子栏目导航功能。动易在大类栏目页是采用分类显示的,所以同样需要对每个子栏目查询,以显示每个子栏目的文章列表。这样,当大类下有20个子栏目时,除了一次查询子栏目外,还要20次查询每个子栏目的文章列表。这样,当然又要比论坛慢上几十倍了。

  然后看子栏目页面,这里动易和动网的速度基本上是一样的。因为都只有一次查询,采用的都是联合查询,采用了同样的分页算法。但论坛是不显示贴子内容的,而有些使用动易的网站的列表是“每篇文章的标题下面再显示文章的内容简介”,这样肯定要比论坛多占用许多资源了。

  再看搜索结果页,论坛默认的是在某个栏目中进行搜索,而动易默认是全站搜索,这里可想而知,速度方面又不在一个档次上。

  最后,我想和大家说的是,动易在这三年的发展过程,在程序代码和速度算法上,从未停止过优化的进程。我们已经尽我们所能,把代码和算法优化到最好的程序。举一些例子吧:

  1、1.0版和2.0版是两级分类,3.0版以后是无限级分类,功能加强了,但也带来一个速度方面的大影响。懂点程序的人应该都知道,在两级分类时,我要查询属于某个大类的文章时,只需简单的一句查询代码(select * from PE_Article where BigClassID=2)即可。到了无限级栏目,则要针对某个大类,先查询出他下面的所有小类(select ClassID from PE_Class where ParentID=2),这样得到一个栏目ID数组(如2,6,8,11,35,87),然后必须这样查询(select * from PE_Article where ClassID in (2,6,8,11,35,87),才能得到这个大类的所有文章,这样在性能上就下降了不止10倍。这两个查询也可以用一个查询来实现(select * from PE_Article where ClassID in (select ClassID from PE_Class where ClassID=2 or ParentID=2),但性能是差不多的。其实这里还简化了逻辑,因为并没有考虑三级或四级以上的栏目结构,没有考虑这个大类栏目下有三四级子栏目的情况。所以性能方面还要下降。在2005版中,我们通过事先把属于此栏目的所有子栏目的ID放到一个字段中,这样就解决了了这个问题,使得无限级栏目的性能与两级栏目的性能相差不是太大。从而使得首页的执行速度提升了10倍不止,栏目结构越复杂,性能提升越明显。

共2页上一页12下一页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选