您可以在数据库中拥有多少个表?

时间:2011-04-05 23:03:58

标签: php mysql database

数据库中可以有多少个表?这会被视为糟糕的编程还是其他什么?我有很多用户信息,我想知道是否可以有很多表?

8 个答案:

答案 0 :(得分:8)

如果您正在考虑这个问题,您应该改变计划存储数据的方式。具有数据库模式通常被认为是一种不好的做法,其中表的数量随着时间的推移而增长。存储数据的更好方法是使用标识列(如用户标识)并为每个用户使用一行。您可以为不同类型的数据设置多个表,但不应为每个用户提供表。

答案 1 :(得分:4)

不,mysql对数据库中的表数没有限制,但显然你会受到可用磁盘空间的限制。

那就是说,如果你问这个问题,你的预期设计可能会相当丑陋。

答案 2 :(得分:4)

刚刚找到了这个

http://bobfield.blogspot.com/2006/03/million-tables.html

因此,如果您怀疑自己拥有超过一百万个表,则应考虑重新设计数据库;)另请注意,此博客文章来自2006年。

答案 3 :(得分:3)

通常不是逻辑限制否。但这个问题引起了讨论 - 为什么你认为你可能接近极限?如果你要创建许多表,那么这就好像你真的想要创建许多行...也许你可以详细说明你的想法,以便我们可以提供一些架构指导..?

答案 4 :(得分:3)

一般来说,限制(如果有的话)应该足够大,不必担心。如果你发现自己担心它,你会遇到更大的问题。例如,如果您与订单的客户打交道,您将为客户创建一个表,为订单创建一个表。您不应该为每个客户创建一个表。

答案 5 :(得分:1)

是的,有一个限制..但你可能会找到它。最后我听说65,000 .. http://forums.mysql.com/read.php?32,100653,100653

答案 6 :(得分:1)

我可以看到一些人可能想要每个用户一张桌子的原因。如果每个用户随着时间的推移会有越来越多的日志/条目/行,并且您不希望代码必须对一个巨大的条目列表进行排序,以查找仅与特定用户ID匹配的行,那么应用程序将只是查找具有给定userID的表,然后该表中的所有内容仅适用于该用户。当想要为一个特定用户比较和排序数据时,它会提高性能。我已经使用过这种方法,但不过一百个用户就是这样。不确定数千名用户可能面临的任何后果。

答案 7 :(得分:0)

为什么要将用户放在自己的表中?对我来说似乎浪费时间。一个用户表的标识ID在每次添加新行时都会增加,这样可以正常工作。

ID可以是其他表的外键,例如“Blog_Posts” - 每篇博文都需要有作者,因此您可以使用“AuthorID”列,该列与用户中的用户ID相关联表

节省空间和时间 - 再加上它更干净。