【问题标题】:MySQL: Better few tables with millions of rows or thousands of tables with hundrets of rows [closed]MySQL:最好是几百万行的几张表或几百行的几千张表[关闭]
【发布时间】:2012-12-27 06:16:01
【问题描述】:

我正在构建一个 Web 应用程序,我希望从一开始就对其进行扩展。我对数据库的可扩展性不是很感兴趣,我正面临着这个疑问:

我应该使用几张具有数百万行的表格,还是应该将内容拆分成数百张表格,如果不是数千张预计有数百行的表格。

两种方法我都可以,但我不知道从长远来看哪一种会更好地扩展。

我找到了有关此胎面的一些信息,但没有多大帮助:MySQL Whats better for speed one table with millions of rows or managing multiple tables?

基本上我需要知道,垂直或水平扩展数据库更好?

【问题讨论】:

  • 数百万行并不是一个很大的数字,因此出于可维护性的原因,最好有足够的表来满足您的业务需求。
  • 这完全取决于具体情况。这取决于架构和查询模式以及您愿意花费的开发时间。
  • 它还取决于每行的大小以及您一次涉及的表格数量

标签: mysql database-design scalability


【解决方案1】:

如果查询调整得当,数据库将提供足够快的响应,在查询中进行非常小的调整时,速度可能会发生神奇的变化。

但是,您不想要数据库方面的讲座。对于您的问题:这里最重要的是实现规范化形式。

您的表应该是可管理的并且redundancy-free。为避免冗余,您需要尽可能normalize 您的表。规范化形式最高可达 6NF,但我认为 Boyce–Codd normal form 应该足够了,如果你在该领域没有经验的话。

【讨论】:

    【解决方案2】:

    Ismet 说得好。然而,在处理网络问题时,有时人们想要跟踪某些“聚合”或其他总数,这可能会有些耗时。

    如果您可能有此类类别,最好考虑为此类条目“附加”一些必要的额外列。然后,当记录添加到任何表时,可以运行插入/更新触发器来仅更新这些值,而不必显式重新运行从数百万条记录中提取的完整查询并给您带来性能损失。

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 2012-08-11
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      • 2021-07-31
      • 2011-06-20
      • 1970-01-01
      • 2011-08-11
      相关资源
      最近更新 更多