有人能帮我理解哪种方法最有效吗。
第一张table users_of_interest_table
有一列 users
具有~1000个唯一用户id的。
第二张table 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)
1条答案
按热度按时间ocebsuys1#
社区建议使用join子句,但是在我所做的一些测试中,in子句效率更高
您必须自己进行测试,为此使用SQLServer概要文件工具