かなりの数のレコードを含むデータベースがあり、ユーザー アイテムが保存されていないユーザーを見つけたいと考えています。
select `name`
  from `users`
 where `ID` not in (select distinct `userID` from `userItem`)
このクエリは、MySQL サーバーによって切断される前に実行を終了することさえできません。ここには、私が知らない大きな非効率性がありますか?
には 200,000 レコード、userItemには 14,000 レコードがありusersます。
クエリの Explain の結果:
1   PRIMARY users   ALL NULL    NULL    NULL    NULL    13369   Using where
2   DEPENDENT SUBQUERY  userItem    index   NULL    userID  8   NULL    189861  Using where; Using index; Using temporary