【发布时间】:2014-09-29 00:22:55
【问题描述】:
这是我现在面临的设计问题,我有 90M 的数据记录,并且这些记录有 10K 的用户。我想设计一个架构,让我可以跟踪 10K 用户对这 90M 记录的使用情况。
当前表结构
10k User table
--------------
user_id
first_name
lastname..
90M data table:
---------------
record_id
value1
value2..
当前实现:- 我们有下表用于跟踪问题是否不可扩展
usage_tracking :
---------------
record_id
user_id
如果所有用户都使用所有记录,则此表将有 90M*10K 记录。如果我的用户是 100K 或更多怎么办?此表不可扩展。
用例: 产品销售这 90M 条记录,用户根据这些记录的使用情况进行计费。我们应该假设所有用户都使用所有记录
usage_tracking 表类似于事务表,当用户从 UI 条目访问记录时创建了此表。
请建议可扩展的设计方法来跟踪用户使用了哪些记录?
【问题讨论】:
-
提供一些努力,而不是把你自己的作品带给我们。此外,这个问题与客户端技术(在本例中为 Java)完全无关。
-
我已经添加了当前的实现细节。
-
好的,现在:为什么您当前的方法不可扩展?
-
更新了对于不清楚的问题很抱歉。
-
您当前的原因并不是不使您当前的方法不可扩展的真正原因。您可以为您的表使用表分区和其他 Oracle 特定的优化。是的,数据库可以在一个表中支持如此数量的行,但是您需要更多的硬盘空间。
标签: oracle database-design database-schema