【问题标题】:Is there a limit to how many tables you can have in a database?数据库中可以拥有多少个表是否有限制?
【发布时间】:2011-04-05 23:03:57
【问题描述】:

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

【问题讨论】:

  • 我在这里没有看到问题。如果你有“很多用户信息”,我只计算一个表:“user_information”(或类似的东西)。

标签: php mysql database


【解决方案1】:

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

【讨论】:

  • 多年的数据库理论和设计最佳实践都是基于将表作为数据类型,将行作为该数据的实例。您会发现大多数模式、库和数据库工具(包括 SQL!)都基于这些假设。一般来说,当您需要向系统添加新类型的数据记录时,您应该只在您的架构中添加一个表。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    刚刚找到这个

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        一般限制,如果有的话,应该足够大,不用担心。如果你发现自己担心它,你就有更大的问题。例如,如果您正在与有订单的客户打交道,您将创建一个客户表和一个订单表。您不应该为每个客户创建一个表。

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              【解决方案8】:

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

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

              节省空间和时间 - 而且更清洁。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2020-03-06
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多