MYSQL建议,表大小

时间:2011-02-06 04:30:21

标签: php mysql

我有一个包含客户端数据的数据库,所有客户端数据都存储在一个表中,并由归一化到另一个表中的客户端代码唯一标识,最终我们将在同一个表中拥有100多个客户端,每年客户端每个客户的数据将翻倍,每个客户每年1000多行数据。

将每个客户端划分为自己的表并通过tablename而不是客户端代码查询它们的优缺点是什么,并且100多个表将无法管理,并且考虑到我们最终将拥有多少数据甚至是必要的什么改变?

2 个答案:

答案 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列类型。

http://dev.mysql.com/doc/refman/5.5/en/features.html

答案 1 :(得分:0)

这完全取决于数据的结构。如果您的表上有索引,即使有数百万行,事情仍应保持相当快。通过客户端分离表在语义上并不“正确”......但是根据您存储的数据,将部件存储在各种链接表中可能会更快。一张桌子上塞满了你所有可能的信息,为了方便查询,可能有点笨拙。无论如何,如果你用几行样本数据发布实际的表结构,我可以给出一个更好的答案,但简短的回答是,只要你正确对待表(保持它们规范化和清洁),你应该没问题。