0

過去 7 日間の問題について混乱しています。私は多くのことをグーグルで検索し、SOも調査しましたが、満足のいく答えを見つけることができませんでした.

LEFT JOIN に関する私の概念を明確にしたいと思います。LEFT JOIN は、LEFT テーブルからすべての値を返し、右テーブルから (外部キーを介して) 結合された値を返します。ここで、(たとえば) 右のテーブルに 10 個の値があり、左のテーブルの主キーを指している場合、LEFT JOIN は最初のテーブルの値を 10 回繰り返し、右のテーブルから値を取得します。これはほんの一例です。パフォーマンスは効果的ですか、それとも心配する必要はありませんか?

重複値の例を次に示します

ここに画像の説明を入力

重複する値を強調表示しました。実際、私は単一のテーブルを持っており、LEFT JOIN を使用して同じテーブルから子コメントを取得したいと考えています。また、行は 1000 ではなく 100 である可能性があります。関連する分野の索引があります。それで、私がそれについて心配する必要があることを私に案内してください(LEFTテーブルからの繰り返し行を与えるLEFT JOINのネイティブ動作を念頭に置いてください)?ほとんど使用されていますか?

4

4 に答える 4

0

帯域幅に関する最もパフォーマンスの高いソリューションは、1 つのターンでヘッダーを取得し、2 番目のターンですべての子を取得することです。それらを記憶に留めて、自分で参加してください。これは通常、スケーリングがうまくいかないため「悪い考え」です (1 つのサーバー上の複数のセッションのメモリ要件がすべて、拡大し続けるデータセットでこれを行っていることを想像してください)。ただし、データセットを一定に保ち、ネットワークを本当にそれは実行可能なオプションです。

回答の終了: はい、正しく理解できました。通常は問題ありませんが、方法があります。

于 2013-04-10T14:30:34.260 に答える
0

パフォーマンスは効果的ですか、それとも心配する必要はありませんか?

これは、自分自身に向けるしかない質問です。これらの質問は非常に主観的なものであり、一般的な方法で回答することはできません.

これが、グーグルで簡単な答えが見つからなかった理由でもあります。

私ができる最善の答えは、データベース パフォーマンス コンサルタントと連絡を取り、問題について話し合うことです。彼女に十分な情報とテストベッドへのアクセスを提供すると、彼女はあなたの質問に明確に答えることができるはずです。

于 2013-04-10T14:07:24.990 に答える