2010-09-17 69 views
0

我正在研究社交网络。Mysql:限制表格数量,行数等

从我所收集的数据来看,1792年的MySQL集群中的表的数量是有限制的。我现在可能最终会得到100-200张桌子。这是否合理/可以接受?或者是我的数据库架构可怕这样?大型项目如社交网络的合理性如何?

此外,每个表的行数限制是多少?我的一些表格将被限制在几十或几百行,但其他(例如用户消息和统计数据)可能会达到数百万或数十亿。我应该在每个表格中放置多少行,是否有合理限制?如果对我更好,我可以按年份创建统计表(stats2010,stats2011)。

我可以整天读互联网,但大部分信息只告诉我什么是数据库设计的最小/最大值,而不是什么好的db设计。在我的项目生涯的早些时候,我可以更好地解决这些问题,从长远来看,我会做得更好。

我应该知道的其他关键指针?我仍然在学习最大连接数,上传超时时间等等,但我想从这里开始。谢谢你提供的所有帮助。

+0

我管理的最大的MySQL数据库有112个表;最大的桌子有超过10亿行,几个桌子超过1亿行。考虑到我们在一些低端硬件上运行,它表现适度。不过,这取决于你如何使用数据库。 – 2010-09-17 22:02:29

回答

1

......现在可能最终会有100-200张桌子。这是否合理/可以接受?或者是我的数据库架构可怕这样?大型项目如社交网络的合理性如何?

很难说没有关于你在桌子上做什么的任何细节。 “社交网络” 是不够的,我的背景,但我看到有表吧:

  • 用户(USER_ID,细节,密码)
  • 朋友(USER_ID,friend_id)

那么每个表格的行数限制是多少?

depends on the MySQL table engine - MyISAM has a 4 GB limit; InnoDB is different. See this link for more details

如果对我更好,我可以按年份创建统计表(stats2010,stats2011)。

听起来像不成熟的优化。

+0

我的表格将简单的20行* 3列的色域运行到具有400行* 8列的复杂新闻数据库。这可能是不成熟的优化,但它不好? – Bryan 2010-09-17 22:10:42

+0

在遇到此页面(http://www.mikebernat.com/blog/MySQL_-_InnoDB_vs_MyISAM)后,我确定迄今为止我已将InnoDB用于所有表格。 – Bryan 2010-09-17 22:17:32

+0

@Bryan:InnoDB也是我的首选,但为了使用全文搜索(FTS),表格必须是MyISAM:/您的表格描述仍然太高,无法为反射提供价值。 – 2010-09-17 22:18:50