【问题标题】:max limit of databases that can be created in mysql?可以在mysql中创建的数据库的最大限制?
【发布时间】:2011-06-19 08:50:55
【问题描述】:

我可以在 Mysql 中创建多达 500000000 个数据库吗??

如果是,效率高吗??

这里,每个数据库都保存用户数据,其中包含 6 个表,其中包含用户信息。

请解释一下这个想法在性能和实施方面的优缺点..

【问题讨论】:

  • 为什么要为每个用户创建一个唯一的数据库,而不是为所有用户创建一个表?
  • 嗯,首先,这是一种很好的方式来填满您的磁盘驱动器并终止您的 DBMS 可能拥有的任何索引算法......
  • + 100 到 Mchl 的链接..你给了一个很好的类比..
  • 不是我:那是 Giuseppe Maxia 的博客

标签: mysql database database-design schema


【解决方案1】:

为每个唯一用户创建一个完整的数据库并不理想。您现在强制 SQL 存储每个数据库并独立引用每个表。更不用说,数据库现在必须更加努力地检索和存储在数据库之间传输的这些信息。

出于规范化目的,您最好在每个表中创建一个“用户”列,以便为您的 CRUD 操作调用该列。这样可以将所有内容集中在一个地方,并减轻数据库的压力。

【讨论】:

    【解决方案2】:

    请不要!

    不管你在想什么,不管是什么原因。创建这么多数据库绝对不是一个好主意。

    如果您正在寻找存储每个用户或每个 X 的数据。那么请再看看什么是关系数据库“关系数据库通过使用数据集中找到的共同特征来匹配数据。”

    假设您正在创建一个图像服务并希望每个用户都有自己的图像。一种方法是为每个用户提供自己的数据库。这是错误的,因为每个用户的数据都包含相同的特征,唯一不同的是关系(用户 A 有图片 A,用户 B 有图片 B),(1 个用户有 0...* 张图片,以及1 张图片属于 1 个用户)。因此,您无需创建那么多数据库,而是创建一个用户表,并将其与图片表相关联,这样您就可以有效地使用数据库。

    回答您更直接的问题。创建一个包含 50.000 个条目的表肯定比创建 50.000 个数据库更有效。

    在 mysql.com 上编辑相关答案:http://forums.mysql.com/read.php?20,74692,74705#msg-74705

    【讨论】:

      【解决方案3】:

      我怀疑他是出于性能原因而想知道这一点 - 不是因为他不知道。

      每个用户在唯一数据库中的查找不会随着数据库的增长而变慢 - 因为简单地说,它不会。

      但是,如果您愿意不遗余力地提高性能,我个人的意见是首先考虑使用不同的 DBMS。我对 mySQL 的个人经验是,如果速度不是问题,它是一个非常好的 DBMS - 我个人发现 MSSQL 快得多。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-11
        • 2016-08-22
        • 2021-06-03
        • 1970-01-01
        • 2014-12-18
        相关资源
        最近更新 更多