【问题标题】:One database that has a lot of items vs. many databases that are made dynamically一个有很多项目的数据库与许多动态创建的数据库
【发布时间】:2012-03-05 13:31:36
【问题描述】:

我是 MySQL 新手。

我正在使用 MySQL 创建一些 Web 服务,但我不确定使用数据库的最佳方式是什么。

一个是具有大量项目并不断进行行跟踪查询的数据库。 另一种是动态制作 db 数据库。

数据库数据库由每个用户的一些问题组成,问题的数量不固定。

【问题讨论】:

  • 您能解释一下“动态制作数据库结构”是什么意思吗?
  • @SzilardBarany 感谢您的回复 :)。我编辑了我的文章:)。我的说法是根据每个用户的请求动态创建数据库或将请求放入一个数据库中。
  • @Mchl 准确回答!非常感谢 :)。 Szliard也是。
  • @Mchl - 如果你不把它作为答案发布,我会 。说真的,其他人会从完整的答案中受益。

标签: mysql database dynamic structure


【解决方案1】:

在数据库中动态创建新表是well known antipattern

一方面,它实际上使编码变得更加困难,因为您需要在查询中满足动态表名。

其次,可能更重要的是,它可能对数据库性能极为不利。根据您使用的存储引擎,每当您查询表时,MySQL 都需要在磁盘上打开 1 个 (InnoDB) 到 3 个 (MyISAM) 文件。当您需要在短时间内查询许多表时,这会给您的文件系统带来很大的压力。

另一方面,如果您将所有数据都放在一个表中,那么 MySQL 会在您第一次查询时尝试将其加载到内存中,并且所有后续读取都将使用内存访问而不是磁盘访问,这让事情变得更快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 2021-10-21
    相关资源
    最近更新 更多