1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

2千万数据、17.3GB数据库下帝国CMS超强生成速度

本帖由 wm_chief2009-12-16 发布。版面名称:后端开发

  1. wm_chief

    wm_chief New Member

    注册:
    2005-09-05
    帖子:
    17,890
    赞:
    46
    数据库总大小:17.3GB、总记录数:4千万零450条、信息数量:2千万条、单表最大信息数:400万条
    [​IMG]

    一、前言:
    帝国CMS 6.0版本最重要的升级功能是对系统构架进行升级,构架更加完美、负载容量更大。然而很多人就问,这个全新的构架有多大的魅力、容量是多少?其实我也不能准确的告诉你,因为6.0刚发布不久并且没有空闲时间测试,那时我只能告诉你“总体容量可无限放大,单表存放容量是原来的几十倍、甚至更多,副表数据量达到一定大小后可设置分表,副表支持无限分表,因而副表容量是无限的”。然而理论是需要实践去验证的,所以趁着这两天比较空闲试着测试,并且测试结果令我非常吃惊,
    在2000万数据中最大的news单表中从50万导到400万数据无论从生成内容页效率还是管理信息列表竟然没有多大差别:
    单表无论是50万还是400万生成5000个内容页速度为:19秒
    单表无论是50万还是400万后台管理信息列表速度为:0.009秒

    二、测试环境
    1、硬件配置:使用本人工作使用的机器测试,普通的配置
    2、软件环境:使用无任何优化的帝国CMS6.0一键安装包
    三、以2000万数据中最大的news表数据量为400万、数据表大小为3.4GB为例:
    400万单表情况下生成5000条数据:19秒
    1、后台点管理信息列表速度:0.008秒
    [​IMG]

    2、修改信息页读取数据:0.005秒
    [​IMG]

    3、400万单表情况下生成5000条数据:19秒
    开始生成:
    [​IMG]

    生成过程截图:
    [​IMG]

    5000条生成时间:19秒
    [​IMG]

    查看成后的栏目目录HTML:
    [​IMG]

    4、测试在使用内容动态页的数据读取速度:0.0025秒
    [​IMG]

    四、由于章节比较多,所以不能在贴子中说明,点击下面链接查看完整的测试过程
    《2千万数据、17.3GB数据库用帝国CMS6.0分表合理存放》分成数个篇章对帝国CMS大数据量如何合理存放的进行介绍,整个测试过程都是边运行边截图,采用透明、公开的方式供大家监督!如果有谁对测评过程和测评结果有疑问,可以自行参照我们的测试过程搭建类似的测试环境自己测试和对比测试结果。
    点击这里查看完整的测试过程:http://www.phome.net/ecms6/jm/20000000/20000000.html

    五、本次2000万数据最终测试数据统计:
    [​IMG]

    本次测试经验总结:
    优点:6.0在大数据下的优势非常明显,生成内容页、动态内容页效率非常之快且不受数据量影响,解决了CMS负载最大的问题,并且使用按表管理信息列表速度很快,单表几十万和几百万数据没有明显区别。
    不足之处:在于单栏目数据量大于200万时标签调用、栏目列表速度有所下降(指的是增加检索条件的情况),主要由于最耗资源的置顶排序与多重排序,下版会考虑删除置顶功能与优化列表,并且会增加大数据量标签调用优化处理功能,以达到所有页面速度在大数据量都很优秀,不仅是内容页效率优秀。

    本次测试2000万只是本人空闲时搞的小测试,主要让大家知道帝国分表如何处理更好,只要分表均匀可以将一个很大的数据分解成无数个相同效率的表,单表无论是50万、400万甚至1000万数据在管理信息列表与生成页面效率基本是相同的,例如:5000万数据中12个栏目可以分成每表存放450万,每个450万数据表效率都是一样的。未来版本帝国将会推出更完美的构架,主表可以像副表一样无限分表,让系统性能再度翻倍提升。做一个完美的安全、稳定高效、强大、灵活的CMS是我们的终极目标,多年来我们一直朝这个方向迈进,不断创新不断完善。帝国软件以为中国网站提供最完善的建站解决方案为已任,打造国内最好的CMS程序。


    帝国CMS对大数据情况建议:
    数据表结构最好的优化是将所有的自定义字段都存放到副表;主表只存放标题字段;
    总体的数据表数据分配均匀,主表下的每个副表存放建议100万数据以内;
    内容页减少标签调用或采用JS调用或者采用.shtml包含最新内容页面的方式;
    栏目列表设置最大显示数量;
    过期信息或不再调用的信息进行归档;
    减少使用搜索,搜索是最耗资源的功能;
    自行修改文件去除标签和列表的置顶排序(置顶功能下版会默认删除),对性能更高要求的可只采用id排序;
    优化运行环境,特别是MYSQL数据库优化;
    服务器配置最好2GB以上内存、采用更快的CPU以及硬盘转速缓存更高IO更快。


    未来帝国CMS版本对大数据方面功能展望:
    标签调用与列表性能优化,删除置顶功能并且对标签调用优化处理;主表结构更加优化。
    推出更完美的构架,主表可以像副表一样无限分表,让系统无论从维护数据还是生成页面性能将再度翻倍提升。
    多服务器结构支持,实现负载均衡。
    增加Oracle、postgresql、Mssql等多种数据库支持。
    ......更多功能我们正在不断的探索与创新,相信会给大家更多的惊喜。


    附:帝国CMS6.0系统数据构架图
    [​IMG]
     
  2. f

    f New Member

    注册:
    2006-04-08
    帖子:
    641
    赞:
    0
  3. wm_chief

    wm_chief New Member

    注册:
    2005-09-05
    帖子:
    17,890
    赞:
    46
    ;););)
     
  4. mycgb

    mycgb New Member

    注册:
    2007-11-28
    帖子:
    3
    赞:
    0
    太牛了。。呵呵。佩服啊。