背景:
我创建了一个 Web 应用程序,我希望它能够合理地扩展。我知道我不是 Google 或 Twitter,但我的应用程序为每个用户使用了相当大量的数据,因此对数据的要求相当高。我想准备好进行合理的扩展,而不必在以后重新构建所有内容。
我认为自己是一名软件开发人员,而不是数据库专家。这就是我在这里发帖的原因。希望有更多数据库专业知识的人可以给我建议。
拥有相对大量的用户,但与 Facebook 的数字完全不同,我希望有一个如下所示的数据库:
一张“大桌子”:
其他 4 个表:
这些表之一用于存储平均值——它的架构是 bigint(20) id、varchar(20) string_id、datetime date_created、float average_value
我想要做什么——两个相对昂贵的查询:
计算新的平均值:
为服务用户创建非规范化的只读记录:
我计划在批处理后端数据库上运行这些昂贵的查询中的每一个,该数据库将其结果推送到处理用户请求的实时前端数据库服务器。这些查询将定期运行。我还没有决定多久。平均查询可能每天进行一次。非规范化查询需要更频繁——也许每隔几分钟。
这些查询中的每一个当前在 …