免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6748 | 回复: 18
打印 上一主题 下一主题

一个超大论坛应该如何分表? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-03 00:24 |只看该作者 |倒序浏览
假如我要设计一个有100万版面的论坛,我的想法是一个版面用两个表来储存帖子和回复,那意味着我必须有200万个表,而一个库中最多可容纳200-300个表,最终我要建10000个库!!!

有点恐怖,我不知道这样可不可行??? 谁有相关经验可以借鉴一下,谢谢!!!

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
2 [报告]
发表于 2007-09-03 07:58 |只看该作者
你要设计 GoogleGroup

论坛徽章:
0
3 [报告]
发表于 2007-09-03 09:26 |只看该作者
强人.

论坛徽章:
0
4 [报告]
发表于 2007-09-03 16:18 |只看该作者
100万是个小数目, 像myspace有上亿的注册用户,你觉得他的数据库架构是如何实现的!!!

论坛徽章:
0
5 [报告]
发表于 2007-09-03 17:23 |只看该作者
而一个库中最多可容纳200-300个表

没听说过这个限制,另外,建议先看看其他论坛系统的设计

论坛徽章:
0
6 [报告]
发表于 2007-09-03 20:58 |只看该作者
我是从下面的连接中看到这个限制;其实,我也不理解,对这个限制也查了很多资料,这也也是设计中的关键问题!

http://blog.chinaunix.net/u/6138/showart_265264.html
"我们知道MySQL的MyISAM引擎每个表都会生成三个文件,*.frm、*.MYD、*.MYI 三个文件,分表用来保存表结构、表数据和表索引。Linux下面每个目录下的文件数量最好不要超过1000个,不然检索数据将更慢,那么每个表都会生成三个文件,相应的如果分表超过300个表,那么将检索非常慢,所以这时候就必须再进行分,比如在进行数据库的分离。"

论坛徽章:
0
7 [报告]
发表于 2007-09-03 21:04 |只看该作者
版主,能否推荐一些论坛设计方面的资料,特别是关于数据库设计方面,谢谢!!!

我以前参考的是jive,一个开源论坛,全是介绍设计模式,缓存方面的,对数据库设计方面提到的很少!!

论坛徽章:
0
8 [报告]
发表于 2007-09-03 21:58 |只看该作者
上面的只是建议,不表示就是限制
其他开源的论坛诸如phpbb,phpwind,discuz都可以参考啊,看他们的表结构如何设计的
纯粹的数据库设计很少以论坛为模型的

论坛徽章:
0
9 [报告]
发表于 2007-09-16 14:36 |只看该作者
我是根据程序需要而设计表的结构,比如一个表的某条记录,就是一个对象的在数据库中的持久化。某个表中的字段也就是某个类的成员变量。

我现在考虑的还是,一个库最多能承受创建多少库? 它的性能如何?它对文件系统的压力如何? mysql manual 上没有过多的说明:

6.4.9. Drawbacks to Creating Many Tables in the Same Database

If you have many MyISAM tables in the same database directory, open, close, and create operations are slow. If you execute SELECT statements on many different tables, there is a little overhead when the table cache is full, because for every table that has to be opened, another must be closed. You can reduce this overhead by making the table cache larger.

论坛徽章:
0
10 [报告]
发表于 2007-09-17 11:53 |只看该作者
没必要,你可以用表分区

然后根据forumid分区

上面说的300个表以上对性能有影响是因为文件系统的原因,如果非得分表的话,那你就先分库吧,不过这样统计的话就麻烦了,当然你也可以专设一个统计表,用于统计各类需要的信息来提高效率
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP