假设我有一个应用程序,我希望不超过50,000个用户
我的数据库架构中有7个表。复制所有的是一个好主意
每个用户的表格?因此,在我的情况下,表的数量大致为
50,000 * 7 = 350,000。
无论如何它比7个单片表更好吗?
答案 0 :(得分:1)
否,我不建议在同一个数据库中为每个用户创建一个表模式。
如果表上有正确的索引,mysql应该能很好地处理负载。
答案 1 :(得分:1)
你提出的是横向分割。 http://en.wikipedia.org/wiki/Partition_%28database%29 即根据一些分区方案(在这种情况下,每个用户一个表),你将所有行(逻辑上)作为一个表,然后将这些行分布在多个表中。
通常,对于这种性质的入门应用程序,只考虑性能开始受到影响时的分区(以及许多其他选项)。
答案 2 :(得分:0)
当然不是。 DB通常针对给定表中的多行进行优化...尝试重新考虑您的数据库模式,以在每个表中包含一个包含用户ID的字段或另一个包含特定用户ID和密钥的关联表数据表中的条目。
数据库设计有一个不错的介绍here。
答案 3 :(得分:0)
不,绝对不是。有两个原因:
数据库设计不应仅因为您在其中存储更多数据而改变。
访问不同的表格为more expensive,比访问单个表格中的特定数据更复杂。
如果您想要每个用户的值的统计信息,请立即映像。您必须使用50 000个单独的查询从50 000个表中收集数据,而不是针对一个表运行单个查询。
表可以很容易地包含毫安记录,但我不确定数据库是否甚至可以包含35万个表。