首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL组合(内连接和选择)效率

问MySQL组合(内连接和选择)效率
EN

Stack Overflow用户
提问于 2013-04-25 22:36:03
回答 2查看 83关注 0票数 0

我有两个表A和B。我需要表A中的两列(var1和var2),只需要表B中的一列(var3)。这样做效率更高吗?

代码语言:javascript
复制
SELECT var1, var2, var3 FROM TABLE_A a
INNER JOIN TABLE_B b ON (a.var1 = b.var1)

或

代码语言:javascript
复制
SELECT var1, var2 FROM TABLE_A a
INNER JOIN (SELECT var1, var3 FROM TABLE_B b) b_min ON (a.var1 = b_min.var1)

第二个在连接之前减少了表B中的列数,但看起来更“复杂”

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-25 22:40:54

我会选择第一个。在第二个索引中,当您执行子查询时,TABLE_B上的所有索引都将丢失。

列数对查询的效率没有影响。这是行数的问题。降低查询速度的是MySQL需要扫描的行数,而不是列数。

附注:确保在TABLE_A.var1和TABLE_B.var1上有索引。

票数 2
EN

Stack Overflow用户

发布于 2013-04-25 22:39:41

我宁愿使用第一个。实际上,不需要使用子查询,因为您在其中确实有任何聚合函数或操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16217656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档