【问题标题】:MySQL efficiency - 2 seperate tables or joinMySQL 效率 - 2 个单独的表或连接
【发布时间】:2016-06-06 10:51:54
【问题描述】:

我有一个关于 MySQL 效率的问题。

如果我有 2 个非常大的数据表,它们的列相似。而且我需要将数据一起显示,将表合并为1或使用连接会更好吗?

请记住,随着时间的推移,每个表中可能会有数百万行,因此合并会使表大小翻倍。

提高效率的最佳方法是什么?

是否值得分离数据?

【问题讨论】:

  • 当列相似时,为什么要将它们分隔在两个不同的表中?
  • 因为数据略有不同。我只是好奇加入 2 个较小的表是否比拖网数百万行数据更有效?
  • 如何为您的数据库提供上下文。有时它可能是有道理的,如果结构设计不佳、冗余、未来考虑,您甚至可能会获得优化想法。由于没有发布实际数据,甚至可以编辑您的帖子并放置您的 CREATE TABLE 语句以查看差异。

标签: mysql performance


【解决方案1】:

取决于实际数据。如果两个表中的数据类型相同,则将它们放在一个表中。

MySQL 能够处理数百万行。当您真正看到性能问题时,您应该再次询问。

您的意思是“使用联合”?通过使用连接,您可以将列添加到结果集中,似乎您更想添加行。

【讨论】:

  • 我试图提前考虑并以最有效的方式构建数据库,而不是等到出现性能问题。
  • 在不知道数据类型和应用程序的情况下,很难预测问题。也许您想研究分片以将数据库拆分到不同的服务器上。 mysql.com/products/cluster/scalability.html
【解决方案2】:

如果您的表具有良好的索引,并且您的连接子句在键值上,那将比只有 1 个大型表更好。

看看这个帖子:http://stackoverflow.com/questions/8184903/performance-joining-tables-vs-large-table-with-redundant-data

正如它所说,没有正确答案,但在这两种情况下都取决于您自己的测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多