Discuz:开启页面缓存为MYSQL减负

来自站长百科
跳转至: 导航、​ 搜索

Discuz! 6.0|Discuz! 6.0安装|Discuz! 6.0使用|Discuz! 6.0风格模板|Discuz! 6.0插件|Discuz! 6.0升级|Discuz! 6.0开发|Discuz! 6.0 FAQ

在整体的论坛运行过程中,数据库服务器 MySQL 的压力是最大的,不仅占用很多的内存和 cpu 资源,而且占用着大部分的磁盘 io 资源,连 PHP 的官方都在声称,说 PHP 脚本 80% 的时间都在等待 MySQL 查询返回的结果。由此可见,提高论坛的负载能力,降低 MySQL 的资源消耗迫在眉睫。当然,Discuz!也已经早注意到这点,页面缓存就是其中的一个方面。下面就详细说明一下 Discuz! 的页面缓存功能是怎样降低MySQL的资源消耗的。

大家都知道,降低 MySQL 的资源消耗的方法除了使用高效率的 SQL 语句之外(当然,这一点 Discuz! 在每一个发布版本中都已经仔细研究了,所以每一句 SQL 都是很优化的),更直接的方法就是不去查询数据库。经过我们长期的分析发现,在网站实际运行过程中,网站论坛用户主要浏览的是每个主题帖子的详细页面,而这其中访问者的身份又以游客居多。根据这个规律,从 Discuz!5.5 开始,更改了以前版本的主题缓存机制,将游客访问的页面通过静态的 html 文件缓存起来,下一个游客在访问同一个主题时,直接调用缓存内容,而不用去再次查询数据库,这样可以有效的减轻数据库服务器的压力。同时首页我们也按照游客缓存的方法进行了纯静态化 html 页面的缓存。

那么缓存是怎么生成、保存在哪和怎么更新呢?首先主题缓存是在游客第一次访问某帖子时,如果该论坛开启了主题缓存功能,那么会估算该帖子被访问的频度,然后跟你设置的主题缓存系数比较,将帖子内容缓存到磁盘,在下一个游客来看时,直接读取出来。对于首页的话,直接就是游客第一次访问的时候,将页面静态化存储起来。其次,页面缓存保存问题。缓存会产生大量的文件,我们将其分散成三层目录,避免单个目录底下文件过多影响系统速度。每个目录可以存放 400w 个帖子主题,足已应付绝大部分大型论坛的需求。这里需要说明的一点,首页我们是当作 tid 等于 0 的帖子进行缓存。最后是缓存的更新。对于每个缓存,我们都有特定的缓存时间,而且是可以独立进行设置,站长可以根据自己站点的特点来灵活定义。

Discuz! 页面缓存的结构就是这样的,那究竟是在哪里设置的呢?进入到 Discuz! 论坛的管理后台,点击基本设置—>页面缓存设置,就可以看到如图1的界面

Dz186.gif

对照我上面的介绍,大家看到这个图之后实际操作一下就很明了了。赶紧动手设置一下吧。

至于开启主题缓存的效果吧,大家在自己的论坛上开启之后,看看页面下方的查询时间的变化就知道了!对了,顺便提醒大家一句,如果你的论坛访问人数很少,帖子也不多,开启页面缓存就没多大必要了,包括虚拟主机用户,那个是拿空间和准确性换效率的问题。


参考来源[ ]

Discuz! 6.0使用手册导航

Discuz! 6.0安装:

Discuz! 6.0产品概况| Discuz! 6.0环境要求| Discuz! 6.0安装详细过程| Discuz! 6.0文件及目录结构| Discuz! 6.0安装的常见问题| 附录 如何在Discuz上安装个人空间SupeSite/x-space指南| 附录 论坛一键式安装Discuz!EXP及EasyDiscuz指南| 附录 discuz本地运行环境构建(windows)

Discuz! 6.0使用:

Discuz! 6.0日常使用| Discuz! 6.0 config.inc.php配置问题| Discuz! 6.0前台管理操作说明| Discuz! 6.0用户权限设定| Discuz! 6.0服务器相关| Discuz! 6.0后台基本设置| Discuz! 6.0后台论坛管理| Discuz! 6.0后台用户管理| Discuz! 6.0后台帖子管理| Discuz! 6.0后台扩展设置| Discuz! 6.0后台其它设置| Discuz! 6.0后台社区营销| Discuz! 6.0后台系统工具

Discuz! 6.0风格模板

Discuz!6.0风格制作| Discuz!6.0界面风格与模板定制| Discuz!6.0风格高级应用| Discuz!6.0头部模板header详解| Discuz!6.0页脚模板footer详解

Discuz! 6.0插件

Discuz!6.0插件简介| Discuz!6.0插件安装| Discuz!6.0插件列表

Discuz! 6.0升级

Discuz!6.0升级指南| Discuz!6.0阶段升级说明| Discuz!6.0版本更新记录

Discuz! 6.0开发

Discuz!6.0插件设计 | Discuz!6.0插件设置及管理| Discuz!6.0插件的钩子使用技巧| Discuz!6.0插件代码的安全规范| Discuz!6.0PassPort接口技术文档

Discuz! 6.0 FAQ

Discuz!6.0经验技巧| Discuz!6.0防御CC攻击说明| Discuz!6.0搜索引擎优化| Discuz!6.0论坛程序