【发布时间】:2013-10-26 14:07:33
【问题描述】:
我想更好地了解如何在 hive 或 MySQL 中实现查询以优化它们以节省运行时间。
假设我在键“name”的两个表上执行 INNER JON 操作,我只想要 name 等于“random”的行
SELECT * from tbl1 JOIN tbl2 on tbl2.name = tbl1.name where tbl1.name = 'random';
现在在实现中,事件的顺序是什么: 1.是否在 tbl1 上过滤 name="random" 后跟 JOIN 操作? 2. 是先加入表然后根据name="random"过滤吗?
我认为选项 1 更好,因为我们将处理更少的 JOIN 数据并且它应该更快。专家有什么想法吗?
更新1:
如果我将查询修改为这样,答案是否相同:
(SELECT * FROM tbl1 where tbl1.name='random) tbl1_1 JOIN tbl2 on tbl2.name=tbl1_1.name
【问题讨论】:
标签: mysql join hadoop hive where