-4

我有 2 个这样的表:

表 A:

article_id | attribute_id
1          | 5
2          | 6

表 B:

attribute_id | attribute_name
5            | foo
6            | bar

我想得到结果:

article_id | attribute_id | attribute_name
1          | 5            | foo

我有 2 个解决方案: 解决方案 A:要么像这样使用内部联接:

SELECT TableA.article_id, TableB.*
FROM TableA
INNER JOIN TableB ON TableA.attribute_id = TableB.attribute_id
WHERE TableA.article_id = 1

或解决方案 B,在我的 Java 程序中:

  • 首先在表 A 中查询。
  • 打开新连接,并使用第一次查询中的“article_id”在表 B 中查询。

我想知道性能方面,哪种解决方案更好。请注意,表 A 和 B 将获得大量点击。另外,请注意,我正在使用 mysql 和 tomcat。

4

3 回答 3

4

这几乎总是“用你的真实数据尝试一下,看看哪个效果更好”的事情。

一般来说我希望加入更有效(更多)。但是,您必须再次尝试使用您的数据和设置。

于 2013-02-16T10:28:49.497 回答
1

连接速度要快很多,因为新连接有相当多的开销。

于 2013-02-16T10:28:18.597 回答
0

简短的回答:加入。

长答案:如果您非常关心性能,我会说基于连接创建一个索引视图,然后选择它。

于 2013-02-16T10:31:10.137 回答