特定の左結合に問題があり、重要なクエリが大幅に遅くなります。PHPMyAdmin を使用してクエリをテストすると、クエリが 546 行を返すのに 3.9 秒かかったことが示されています。
関連する 2 つのテーブルがあります: nsi (1,553 行) とファイル (233,561 行)。このクエリで言及されているすべての列は個別にインデックス化されているだけでなく、files テーブルの filejobid、category、isactive に複合インデックスが存在します。比較されるものもすべて整数です。
この簡易バージョンのクエリの目的は、nsi テーブルの行を 1 回表示し、誰かがカテゴリ 20 のファイルをアップロードしたかどうかを判断できるようにすることです。複数のファイルが存在する可能性がありますが、1 つの行のみである必要があるため、グループ化されます。
クエリ:
SELECT
nsi.id AS id,
f.id AS filein
FROM nsi nsi
LEFT JOIN files f
ON f.filejobid=nsi.leadid AND f.category=20 AND f.isactive=1
WHERE nsi.isactive=1
GROUP BY nsi.id
このデータの 67 秒の読み込み時間は、私のアプリケーションでは受け入れられず、これ以上最適化する方法がわかりません。インデックスと複合インデックスを作成しました。代わりに、よりラウンドアバウトな新しいソリューションを検討する必要がありますか?
助けてくれてありがとう!