Discuz! X2性能测试篇之一:分表技术
作为新一代的专业社区建站平台,Discuz!X2融合了“跨界融合”的设计理念,其系统架构全新构造,性能卓越,而且把论坛(BBS)、社交网络(SNS)、门户(Portal)、群组(Group)、开放平台(Open Platform)应用充分融合于一体。小编有幸第一时间测试了Discuz! X2的性能表现,特别从分表技术、缓存技术、主从分离等角度分别记录自己的测试体验。
Discuz! X2性能测试篇:分表技术
小编经常能听到站长这样的反馈:论坛运行得越来越慢,论坛数据库数据增加到几G,论坛服务器承受的压力越来越重,版主和会员们抱怨发帖、看帖速度变慢……其实,这都是数据库过大导致的问题。
据估算,当一个论坛的帖子量超过300万时,其数据库也相应的超过1G,那么该论坛的访问数量会明显变慢,会员看帖、发帖、回帖的响应速度也会明显变慢。因此,数据库过大导致的论坛响应速度变慢问题是普遍问题和常见现象,也是站长们所急切渴望解决的一个难题。而采取“数据库分表技术”,可以对论坛性能进行优化,有效解决站长难题,提升论坛访问效率。
Discuz! X2之前的版本,已经支持主题分表和帖子分表,而现在的数据库分表技术更是全面升级,新增附件分表和短消息分表,并且支持“无干预分表”模式,用户不必时时关注数据表的大小,系统会将数据直接分散存储。下面小编带你具体了解下吧。
数据库分表详解
Discuz! 数据库目前主要使用了 MySQL 的 MyISAM 类型表。通常情况下, MyISAM 类型的数据表,存取数据很快,所以目前被很多程序采用。但它的缺点也很明显,当数据量级不断加大的时候,数据的存取速度开始降低,从而导致程序运行效率越来越慢。最终使得服务器负荷增大,承载能力下降。
尽管MySQL内部也提供了一些对大规模数据的优化,远远不能满足需求。所以需要将数据分散存储,将每个表的数据量控制在一定范围内,保障系统仍旧可以顺畅运行。这就是数据库分表。
图1:数据库分表
数据库分表的效果
对于一些中、大型活跃社区,日发帖量都是以万级为单位的,帖子数据和附件数据增长得非常快,因此保证这两个表的性能就显得尤为重要。具体解决办法就是对其分表,分担压力;表现在用户层面就是,能够有效提升发帖、看帖的速度。发帖、看帖作为社区的主要活动,其性能直接影响到整个系统的承载能力。
图2:附件和短消息分表
大型社区尤其适合分表
对一个大型社区来说,数据库都太大,甚至达到几G,甚至十几G,这些社区尤其适合进行数据库分表。通过合理的分表,发表或者看帖的速度将会大幅度提升;而且数据库越大,数据量越多, 分表后提升的“效率比”就越大。
Discuz! X2与Discuz! X1的分表技术对比
1、Discuz! X2的分表管理更加便捷,可以自由的将数据分割、合并;
2、Discuz! X2降低了对原有功能的影响, 提升用户的使用体验;
3、Discuz! X2除原有的主题、帖子分表以外,新增了附件和短消息分表支持;
4、Discuz! X2支持多服务器部署和主从数据库读写分离;
5、Discuz! X2新增了“无干预分表“模式,用户不必时时关注数据表的大小,系统会将数据直接分散存储。