我有一个包含客户端数据的数据库,所有客户端数据都存储在一个表中,并由归一化到另一个表中的客户端代码唯一标识,最终我们将在同一个表中拥有100多个客户端,每年客户端每个客户的数据将翻倍,每个客户每年1000多行数据。
将每个客户端划分为自己的表并通过tablename而不是客户端代码查询它们的优缺点是什么,并且100多个表将无法管理,并且考虑到我们最终将拥有多少数据甚至是必要的什么改变?
答案 0 :(得分:1)
这是一个奇怪的问题,但实际上我认为你没有什么可担心的,保持你的数据库正常化(你说你已经做过)。
将它全部放在一个表中,它是一个数据库,让它成长,不要担心它会在2 - 3年后成为10k行。
我已经处理了大量的mysql / mssql安装,它们在具有数百万条记录的单台服务器上运行良好。
所以不,不要把客户打成桌子,它会造成一个管理噩梦,坚持一个,使其正常化并留下它,除非你遇到问题。
修改强>
您仍然担心,这是MYSQL的直接副本:
可扩展性和限制:
支持大型数据库。我们用 MySQL服务器与数据库 包含5000万条记录。我们也 了解使用MySQL Server的用户 有200,000张表和约 5,000,000,000行。
每个表最多支持64个索引 (MySQL 4.1.2之前的32)。每个指数 可能包含1到16列或 列的一部分。最大指数 宽度为1000字节(InnoDB为767); 在MySQL 4.1.2之前,限制为500 字节。索引可以使用a的前缀 CHAR,VARCHAR,BLOB或的列 TEXT列类型。
答案 1 :(得分:0)
这完全取决于数据的结构。如果您的表上有索引,即使有数百万行,事情仍应保持相当快。通过客户端分离表在语义上并不“正确”......但是根据您存储的数据,将部件存储在各种链接表中可能会更快。一张桌子上塞满了你所有可能的信息,为了方便查询,可能有点笨拙。无论如何,如果你用几行样本数据发布实际的表结构,我可以给出一个更好的答案,但简短的回答是,只要你正确对待表(保持它们规范化和清洁),你应该没问题。