• 专注于网站建设,网络推广,关键词优化,SEO优化,专业的网站建设开发团队!

Discuz!中分表的实现方法

2015-06-13 16:31:39   来源:叶景网络
    论坛系统中的帖子表,是访问量大很大的表,为了保证数据的快速提取返回给用户,必须使用一些处理方式来解决,而分表是一个良好分散数据库压力的方法。把若干个存储相同类型数据的表分成几个表分表存储,在提取数据的时候,不同的用户访问不同的表,互不冲突,降低锁表的几率。
    其中,一般MySQL中最快的存储引擎MyISAM,而discuz中的数据存储引擎都是MyISAM的。
    一、分表实现方法对比:
    方法一(按月分表)
    优点:扩展性好,容易实现。
    缺点:由于MySQL的MyISAM引擎每个表都会生成三个文件,*.frm、*.MYD、*.MYI 三个文件,分表用来保存表结构、表数据和表索引。随着时间的增加,表的数量会越来越多,当数据表多于350个时,每个表都会生成三个文件,在linux中文件数量多于1000,检索数据将变非常慢,所以到这时候还得进行数据库的分离。
    方法二(按自增id的尾数来分,对10取模---%10,分成10个表)
    优点:扩展性好,能实现分表,没什么特别的优点。
    缺点:程序代码改动很大。
    方法三(hash算法)
    优点:避免一张表出现几百万条数据,缩短了一条sql的执行时间
    缺点:当一种规则确定时,打破这条规则会很麻烦,当改用md5后,会使同一个用户的消息被存储到不同的表中,这样数据会乱套,扩展性很差。
    方法四(利用merge存储引擎来实现分表)
    优点:扩展性好,并且程序代码改动的不是很大。
    缺点:这种方法的效果比第三种方法差一些
    方法五(按数据大小分表,如100M分一个表,discuz中系统自带的)
    二、discuz中实现分表过程(得用第五种方法)
    1.进行帖子分表前一定要先关闭站点,为防止分表操作过程中出现问题,必须做好数据库备份后再进行此操作
    2.帖子数据转移完毕会对源帖子表进行表优化操作,优化表所耗时间比较长,在这期间绝对不能重起服务器或者停止MySQL服务
    3.forum_post(主表)必须保留300M的数据
    4.帖子分表功能可以将帖子分在不同的数据表中,适合帖子数很多并且运行效率受到影响的站点使用
叶景网络,网络推广,网站建设
特别推荐RECOMMEND
搜索引擎网站关键词seo优化的意义
视频推广怎么做
网站seo优化怎么做关键词排上首页?
SEO介绍什么叫搜索引擎网站关键词优化
seo优化怎样做提升关键词排名
热点图文Hot
discuz插件开发的入门篇 discuz插件开发的入
彻底解决关于dedecms留言板的安装问题 彻底解决关于dedecm
DiscuzX2.5登录无法同步登录到PHPCMS v9解决办法 DiscuzX2.5登录无法
discuz X2.5安装手动选择ucenter时出错问题解决 discuz X2.5安装手
关注排行RANKING
1

discuz插件开发的入门篇

discuz插件开发的入门篇 在config config_global php 文件里设置$_config[ plugindeveloper ] = ...

2

彻底解决关于dedecms留言板的安装问题

彻底解决关于dedecms留言板的安装问题 先前使用dedecms5 5做的网站在服务器上运行两年了,某天突然想给网站加上个留言板模块...

3

DiscuzX2.5登录无法同步登录到PHPCM...

DiscuzX2.5登录无法同步登录到PHPCMS v9解决办法 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领...

4

discuz X2.5安装手动选择ucenter时...

discuz X2.5安装手动选择ucenter时出错问题解决 discuz X2 5安装时想自定义选择ucenter时出错,因为discuz X2 5中也有一个uc_server...

5

Discuz百万级数据的压力测试实现(...

Discuz百万级数据的压力测试实现(创建海量数据库) 由于开发的需求,对discuz创建海量数据库来进行压力测试,以下是对discuz百万级数据的压...

6

discuzX2.5安装不成功,到了正在安装...

discuzX2.5安装不成功,到了正在安装附加数据就不动了 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网...

7

Discuz!中分表的实现方法

Discuz!中分表的实现方法 论坛系统中的帖子表,是访问量大很大的表,为了保证数据的快速提取返回给用户,...

8

什么情况下选用hdwiki(for discuz)?

什么情况下选用hdwiki(for discuz)? 如果您已经有了一个dz论坛,并且还想要一个自己专业的知识库,建个百科频道。建...

9

让hdwiki使用discuz的登录和注册

让hdwiki使用discuz的登录和注册 hdwiki是国内开源wki结构简单,安装使用还是很方便的。discuz是使用最多的开源BBS。