具有大量记录的数据库的体系结构

时间:2011-06-28 14:55:37

标签: database database-design

我必须为不同类型的人群建立服务。此服务包含一个Web门户和一个Web服务(由智能手机查询),其中包含大量记录。每个人口都有自己的记录集,人口之间共享的记录很少。

每个人口都有其活动,新闻,用户......许多用户将使用此服务,数据库表(将包含这些事件,新闻和用户)将迅速增长。此表中的选择将比插入的数量多100倍。 最后,我计划使用MySQL作为数据库引擎。

我的问题是架构问题:

  • 为所有人群建立公用表(单个表新闻,所有人口的单个表事件)和允许过滤的列是否更好?或者每个人口拥有一个数据库(每个人口都有自己的事件表,自己的新闻表......)会更好吗?
  • 如果更优化每个数据库的数据库架构,我该如何处理共享对象?

感谢您的提示和建议!

kheraud

1 个答案:

答案 0 :(得分:1)

您可以为每个新闻,事件等设置一个表,其中包含一些列,这些列将区分群体,您可以在该列上应用分区。这样,您在群体上的高频选择将仅访问相应的分区,而不是全部。您也可以进行分区索引。

你可以参考这个来进行Mysql分区http://dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html

关于共享列我想如果共享百分比较小,您可以复制行,否则您最终将访问多个分区以进行查询。