【问题标题】:2 tables (inner join) versus 1 table (simple select)2 个表(内部连接)与 1 个表(简单选择)
【发布时间】:2015-07-24 23:16:38
【问题描述】:

什么是最好的? 有两个相关的表并通过带有 id 列的内部连接查询数据,或者已经有一个带有字符串的表并进行简单查询? (考虑大量记录)

示例(内部联接)

Table1
ID - Value
1 - AAA
2 - BBB
3 - CCC
4 - DDD


...内部联接 ...其中 value = 'BBB'

Table 2
ID - Table1_id
21645 - 1
45465 - 2
78787 - 2
68797 - 4

===========================
示例(简单选择)

Table 2
ID - Table1_value
21645 - AAA
45465 - BBB
78787 - BBB
68797 - DDD
where table1_value = 'BBB'

在第一个示例中我使用的空间更少,而在第二个示例中处理更少?

【问题讨论】:

  • 您应该阅读数据库设计和规范化。答案是:使用连接
  • 你应该遵循第一种方法
  • 你能把问题中的两个查询都贴出来吗?
  • @juergend,这是一个糟糕的例子,我认为没有任何理由在没有更多上下文的情况下在这里使用联接。
  • "Tons" = 数千 --> 差别不大。 "吨" = 百万 --> 让我们看看SHOW CREATE TABLE 的其余部分;我怀疑有(或没有)两张桌子可能有正当理由。

标签: mysql performance inner-join


【解决方案1】:

我在想一些非规范化的情况。由于我没有如何在不填充和测试的情况下预测结果,所以我选择了内部连接。谢谢。

【讨论】:

    猜你喜欢
    • 2011-08-18
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多