Discuz论坛:处理大数据量方法,大量的帖子导致论坛运行很慢

 andlly   2018-07-03 10:29   484 人阅读  2 条评论

Discuz是国内一款非常棒的论坛程序,但是再好的程序,如果不经常维护的话也可能会出现各种各样的问题。因为在当今互联网世界中,不管是软件也好,硬件也好,各种产品的更新换代速度都是很快的,如果跟不上时代潮流,不定期维护,那么迟早会被时代的潮流给淹没,消失在茫茫互联网大海中。Discuz数据库如果不经常维护,就可能会被信息给塞满,导致数据库内容巨大,接着就会导致论坛经常出现数据库错误的提示。下面小编分享一下给discuz数据库分表的经验。

Discuz如何给帖子分表,discuz数据库太大怎么办


打开 UCenter


然后再点击左侧的【帖子分表】链接。

blob.png

分表之前一定要提前备份好数据库。

blob.png

数据库备份好以后,回到之前的分表页面。

blob.png

找到【分表】链接

blob.png


分表之前需要关闭站点。

blob.png


关闭站点。全局、站点信息里面


往下拉,就可以看到 有【关闭站点】的选项。关闭站点选择是,提交。


回到之前的分表页面,点击分表。


如果数据库超过10G的话建议分表,小于10G则可以不用分表。


blob.png


如果论坛此时帖子的量很大,主表已经大于10G的话,可以点击【添加主表】创建一个新的主表。


blob.png


添加新的主表之后,会影响到以前的表类型设置,以前的主表会变成副表,以前的副表(如若存在)将会变成存档表,用户新发布的帖子将会保存在新的主表之内。


blob.png


分表创建完成之后大概是这个样子。


blob.png


数据库高负载解决的方案一般就两种:

1。优化数据存储的算法,保证io的读写最小,这一点最容易被人忽视,而这一点确实整个问题的关键。 

2。确保可读数据在磁盘上连续存储,使得磁盘指针不会“空转”。

单表超过2G以上,建议主从服务器,一台主二台从的,主服务器全是写入,更新,删除数据操作。二台从服务器只管使用查询操作。 


对于有实时插入又需要大数据的查询的一个系统。

只是对于这个系统,我总结一下有以下需要注意的地方:


1,对于一个系统来说,如果查询性能反应不好的话,第一个调整的地方是思考业务的需求是否是合理的?
一个查询既要分页获取前面一页或者几页的数据,又要根据条件获取总的记录数,如果符合的记录总数是上亿条的话,感觉就是一个不合理的要求。
2,市场需求调研人员业务水平根本不合格。
3,前台开发人员写的SQL差,根本没有调优的基本概念,术业有专攻啊。
4,如果业务需求合理,SQL的调整无非是从执行计划开始,如果是ORACLE10g,开了cbo,可以用 SQL优化器 (SQL Tuning Advisor :STA)
分析你的sql。
5,最近的nosq和海量分布式的数据库概念很热。公司也在考虑HBASE了。


数据量上亿时就使用分区具体的分区方案看业务需求,如果查询数据是按时间来的且时间跨度小,那么按天分


如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的。这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库。


  虽然关系型数据库在海量数据中逊色于NoSQL数据库,但是如果你操作正确,它的性能还是会满足你的需求的。针对数据的不同操作,其优化方向也是不尽相同。对于数据移植,查询和插入等操作,可以从不同的方向去考虑。而在优化的时候还需要考虑其他相关操作是否会产生影响。就比如你可以通过创建索引提高查询性能,但是这会导致插入数据的时候因为要建立更新索引导致插入性能降低,你是否可以接受这一降低那。所以,对数据库的优化是要考虑多个方向,寻找一个折衷的最佳方案。


本文地址:http://10tf.com/post/25.html
版权声明:本文为原创文章,版权归 andlly 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

 评论列表

  1. andlly
    andlly  @回复

    大数据量的数据库处理还是比较麻烦的。

  2. 爱吧@大川网
    爱吧@大川网  @回复

    说的是,学习了。