从连接两个表的查询中获取不同计数的最佳方法(多个连接可能性)

Best way to get distinct count from a query joining two tables (multiple join possibilities)

我有 2 个 table,table Actions & table UsersActions -> Usersmany-one 关联。

Table Actions(有几千行)

Table Users(最多一百行)

我正在尝试获取最佳连接查询以获得带有 WHERE 子句的计数。我需要 table Actions 中不同 created_by 的计数,其中 Table Users 中的 org_name 包含 'myorg'。另外,(Actions.created_by = Users.username)

我目前有以下查询(产生预期结果),想知道哪个更好,是否可以进一步优化?

查询 1:

select count(distinct Actions.created_by)
from Actions join
     Users
     on Users.org_id = Actions.org_id 
where Users.org_name like '%myorg%';

查询 2:

select count(distinct Users.username)
from Users join
     Actions
     on Actions.created_by = Users.username 
where Users.org_name like '%myorg%';

最快的方法是修改第二个查询:

select count(*)
from Users u
where exists (select 1
              from Actions a
              where a.created_by = u.username 
             )
and u.org_name like '%myorg%';

那么最好的索引在actions(created_by)