有人可以帮我了解哪种方法最有效吗?
第一个表users_of_interest_table
有一个列users
,其中包含 ~1,000 个唯一用户 ID。
第二个表app_logs_table
具有users
列和app_log
列。 该表有超过 10 亿行和超过 1000 万的唯一用户。
获取users_of_interest
中用户的所有应用日志数据的最有效方法是什么? 这是我到目前为止想出的。
选项 1:使用内部联接
SELECT
u.users, a.app_logs
FROM
users_of_interest_table u
INNER JOIN
app_logs_table a
ON
u.users = a.users
选项 2:Where 子句中的子查询
SELECT
a.users, a.app_logs
FROM
app_logs_table a
WHERE
a.users IN (SELECT u.users FROM users_of_interest_table u)
社区建议使用 Join 子句,但是,在我所做的一些测试中,In 子句更有效
率您必须自己进行测试,为此请使用 SQL Server 配置文件工具