`

(转)MySQL优化 之 Discuz论坛MySQL通用优化

阅读更多
http://www.imysql.cn/2012/09/22/mysql-optimize-around-discuz.html

  这里提到了关于discuz 中myql优化值得注意的几点,归纳如下:
1. 参考上一篇博文:[MySQL FAQ]系列 -- 新手必看:一步到位之InnoDB,将MySQL数据库默认引擎修改为InnoDB;
2. 除转换所有数据表引擎为InnoDB(除了 forum_postposition 和 common_session 两个表,后面再说原因);
3. 原则上,所有表都应创建一个自增ID列作为主键,该列可和业务完全无关,避免频繁更新导致重新排序。


   下面来说说 forum_postposition 和 common_session 表的改造方案。

1. 先说下 forum_postposition 表。
该表用来存储论坛帖子的排序(帖子排楼顺序),存储内容类似:(1 1), (1 2), (2 1), (2 2), (2 3)。
官方号称因为这种特殊的业务原因,不变修改成InnoDB表,其实可以尝试用下面的方案:
(1 1 1), (2 1 2), (3 2 1), (4 2 2), (5 2 3)。
和之前的区别在于新增了一列自增ID做主键,该主键和业务完全没有任何关系,仅用做自增主键。
原表则采用 (tid, position) 两个字段联合做自增主键,在高并发情况下,效率自然不高。

2. 再来说说 common_session 表。
该表顾名思义,用于存储账号登陆session,和 forum_post 类似,都属于高并发请求表。
该表未定义自增ID列主键,仅用一个 CHAR(6) 类型的 sid 做唯一索引。转成InnoDB后,在高并发的情况下,该表的效率会非常低。
因此在转换之前,应先确认如果新增一个自增ID列主键,是否会影响论坛正常逻辑。

总结一下:
对于discuz官方及二次开发者,建议:

1. 所有数据表均转换成InnoDB引擎,并针对InnoDB特点做相应设计上的优化;
2. 所有数据表均应创建自增ID列做为主键,如果没有的话;
3. 类似 common_session 表,可考虑采用 NOSQL 存储,当然了,如果为了实现DB高可用,还是继续放在MySQL中;
4. 开发翻页限制功能,防止搜索引擎抓取 N 多页帖子列表,这个功能会导致数据库的物理读较大。
对于discuz普通用户,建议:

1. 参考我的博文:[MySQL FAQ]系列 -- 新手必看:一步到位之InnoDB,将所有数据表引擎修改为InnoDB;
2. 给DB配备的内存稍微大一些,起码也要8GB;
3. 使用xfs文件系统,会比默认的ext3甚至ext4好很多,详细查看:XFS设计 -- 转载;
4. 不是cron任务,定期删除session表中过期记录,保持该表足够"瘦身";
分享到:
评论

相关推荐

    discuz论坛通用采集 1.0.8

    Discuz论坛,作为国内最流行的社区论坛软件之一,以其强大的功能和灵活的扩展性深受广大用户的喜爱。本次我们关注的是“Discuz论坛通用采集1.0.8”这一版本,它是一款专为Discuz论坛设计的数据采集工具,旨在帮助...

    IIS+PHP+MYSQL+DISCUZ安装教程.pdf

    X是一个基于PHP开发的通用社区论坛程序,使用MySQL作为数据库。 安装IIS+PHP+MYSQL+Discuz的教程一般包括以下几个步骤: 1. 安装IIS(Internet Information Services): IIS是Windows平台上的Web服务器软件。在...

    php下mysql数据库操作类(改自discuz).zip

    是一个知名的社区论坛系统,它的代码库包含了许多实用的功能,其中包括对MySQL数据库的高效处理。本篇将详细介绍基于PHP的MySQL数据库操作类,以及如何将源自Discuz的此类库进行修改以适应其他程序。 首先,这个...

    Discuz(论坛) GBK简体中文版(PHP+MySQL/PgSQL)

    一个通用的论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务,采用世界上最流行的 web 编程组合 PHP+MySQL/PgSQL 实现,...

    discuz论坛模板--确认可用

    论坛是一款基于PHP和MySQL的开源社区建站系统,被广泛应用于搭建各类论坛网站。"discuz论坛模板--确认可用" 指的是这个压缩包中包含了一个已经验证过可用性的Discuz! 论坛模板,用户可以将其安装到自己的Discuz! ...

    我已装了Mysql但,安装DZ论坛时,为什么提示没有安装Mysql?

    #### 一、MySQL与Discuz!论坛的关系 1. **MySQL简介**:MySQL是一种关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)进行数据操作,广泛应用于网站后台数据库搭建。由于其开源免费、性能稳定等特点,在...

    Discuz论坛

    ,中国国家版权局著作权登记号 2006SR11895)是康盛创想(北京)科技有限公司(英文简称Comsenz)推出的一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备...

    Discuz游戏资源下载论坛模板 游戏风格 商业版(GBK)

    9. **SEO优化**:商业版的论坛模板通常会考虑搜索引擎优化,通过合理的关键词布局、元标签设置等手段提高网站在搜索引擎中的排名。 10. **安全防护**:由于涉及到用户数据和资源下载,论坛需要有相应的安全措施,如...

    Discuz论坛版本

    ,中国国家版权局著作权登记号 2003SR6623)是一个通用的论坛软件系统,用户可以在不需要任何编程的基础上,Discuz论坛通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。...

    discuz源码

    【标题】"Discuz源码"涉及的是一个知名的开源社区论坛系统——Discuz!,它是一种基于PHP和MySQL构建的论坛软件。Discuz! X3.0是该系列的一个重要版本,尤其在性能和用户体验上有着显著提升。 【描述】中提到的...

    DIY Push论坛版主看帖器 DISCUZ站长必备

    总的来说,DIY Push论坛版主看帖器是DISCUZ论坛管理者的一个强大助手,通过自动化和优化版主的工作流程,有助于保持论坛的秩序,提升用户满意度,进一步促进社区的繁荣发展。同时,对PHP编程有一定了解的用户还可以...

    基于PHP的新海discuz7.2discuz7.1论坛自助友情链接系统源码.zip

    标题中的“基于PHP的新海... 论坛的功能,通过自助的友链管理,可以促进社区的活跃度和外部链接的建立,对论坛的SEO优化和用户体验都有积极影响。对于熟悉PHP和Discuz! 的开发者来说,这是一个值得研究和利用的资源。

    discuz7.2.3论坛php源码

    2. misc.php:包含了各种通用的辅助函数,处理论坛中的各种非特定任务,如页面跳转、时间格式化等。 3. stats.php:统计分析模块,用于收集并展示论坛的访问量、活跃用户、帖子数量等数据,有助于管理员监控论坛的...

    Discuz_SC_UTF8.zip

    - **性能优化**:3.4版本对系统性能进行了深度优化,提高了论坛的运行速度,降低了服务器资源消耗,提升了用户体验。 - **安全强化**:新增加的安全机制,如SQL注入防护、XSS攻击防护等,增强了论坛的安全性,保护...

    Discuz_X3.1源代码

    《深入解析Discuz! X3.1源代码》 Discuz! X3.1是一款深受广大网站管理员喜爱的... X3.1的源代码,开发者不仅能了解其背后的运行机制,还能掌握社区论坛开发的通用技巧,为构建和优化自己的论坛提供有力的技术支持。

    Ubuntu Debian(NGINX/PHP/MYSQL)快速配置工具LNMP云安装

    安装完成后,管理Nginx、PHP5、MySQL已经有标准管理命令,其状态管理沿用了Linux通用性。 Nginx状态管理 /etc/init.d/nginx {start|stop|restart|reload|force-reload|status|configtest}PHP5-FPM状态管理 /etc/init...

    Discuz_X3.2_SC_GBK.zip

    )是康盛创想(北京)科技有限公司(英文简称Comsenz)推出的一套通用的社区论坛软件系 统。作为国内最大的社区软件及服务提供商,Comsenz旗下的 Discuz! 产品,无论在功能、 稳定性、负载能力、安全保障等方面都居于...

    DISCUZ 源码分析

    DISCUZ 是一款流行的开源社区论坛系统,由PHP编写,与MySQL数据库配合使用,为网站提供强大的论坛功能。其源码分析对于理解Web开发,尤其是PHP和社区平台设计具有重要的学习价值。 1. **框架结构** DISCUZ 的源码...

    LAMP+DNS+NFS搭建discuz论坛 1

    在这个任务中,我们讨论的是如何使用LAMP(Linux、Apache、MySQL/MariaDB、PHP)架构,结合DNS(Domain Name System)和NFS(Network File System)来搭建一个Discuz论坛。Discuz是一款流行的开源社区论坛软件,而...

    Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程

    )是北京康盛新创科技有限责任公司推出的一套通用的社区论坛软件系统。自2001年6月面世以来,Discuz!已拥有14年以上的应用历史和200多万网站用户案例,是全球成熟度最高、覆盖率最大的论坛软件系统之一。目前最新...

Global site tag (gtag.js) - Google Analytics