where子句中join vs子查询的性能(配置单元)

4smxwvx5  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(400)

有人能帮我理解哪种方法最有效吗。
第一张table users_of_interest_table 有一列 users 具有~1000个唯一用户id的。
第二张table app_logs_table 有一个 users 列以及 app_log 列。该表有超过10亿行和超过1000万个独立用户。
为中的用户获取所有应用程序日志数据的最有效方法是什么 users_of_interest . 这是我到目前为止得出的结论。
选项1:使用内部联接

  1. SELECT
  2. u.users, a.app_logs
  3. FROM
  4. users_of_interest_table u
  5. INNER JOIN
  6. app_logs_table a
  7. ON
  8. u.users = a.users

选项2:where子句中的子查询

  1. SELECT
  2. a.users, a.app_logs
  3. FROM
  4. app_logs_table a
  5. WHERE
  6. a.users IN (SELECT u.users FROM users_of_interest_table u)
ocebsuys

ocebsuys1#

社区建议使用join子句,但是在我所做的一些测试中,in子句效率更高
您必须自己进行测试,为此使用SQLServer概要文件工具

相关问题