2013-02-16 27 views
-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
  • 打开新连接,并在表B中使用来自第一个查询的“article_id”进行查询。

我想知道性能明智,哪个解决方案更好。 请注意,表A和B将收到大量的点击。另外,请注意,我使用的是mysql和tomcat。

回答

1

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

4

这几乎总是“用你的真实数据来试一下,看看哪个更好”的东西。

一般,我希望连接更有效率(更多)。但是,您必须再次尝试您的数据和您的设置。

0

简答:加入。

长答案:如果你是非常与性能有关,我会说创建一个基于联接的索引视图,并选择它。