以下は正常に動作しますが、遅すぎます。表Bに一致するレコードがあることを知っておく必要があるので、何かトリックはありますか?
(不思議なことに反対の検索:結合しないレコードを見つける(IS NULL)は非常に高速です)
SELECT
TableA.id
FROM
TableA
LEFT JOIN
TableB
ON
TableB.TableA_id = TableA.id
WHERE
TableB.id IS NOT NULL and TableA.clientid=13 ;
Clientidのインデックスが作成されましたが、クエリが非常に高速から数分に大幅に遅くなるのはこの節です。
(03May12私は今、はるかに強力なサーバー上の同一のデータベースでこの同じクエリを試しましたが、クエリには1秒かかります。したがって、元のサーバーが完全に過負荷になっていることが問題のようです。皮肉なことに、上記のクエリを使用して識別していました。テーブルのサイズを縮小するために削除できるレコード。より高速なサーバーでデータベースを再構築し、クリーンアップしてから、「低速」サーバーで再生成する必要があります)