sql >> データベース >  >> RDS >> Mysql

STRAIGHT_JOINがこのクエリを大幅に改善するのはなぜですか。また、SELECTキーワードの後に​​記述された場合、それはどういう意味ですか。

    STRAIGHT_JOIN テーブルの結合順序を強制するため、table1 外側のループでスキャンされ、table2 内側のループで。

    オプティマイザーは完全ではありませんが(かなりまともですが)、最も可能性の高い原因は古い統計です。

    いいえ、オプティマイザが間違っている場合のみです。これは、データ分布がひどく歪んでいるか、適切に計算できない場合(たとえば、空間インデックスまたはフルテキストインデックスの場合)である可能性があります。

    統計を収集し、両方の方法で計画を作成し、これらの計画の意味を理解する必要があります。

    あなたがそれを見たら:

    1. 自動生成された計画は最適ではなく、標準的な方法では改善できません。

    2. STRAIGHT_JOIN バージョンの方が優れています。常にそうなることを理解し、理由を理解します。 常にそうなります

    、次にSTRAIGHT_JOINを使用します 。




    1. NetBeans 9.0、パート4のJava9でJShellを使用する

    2. 2つのクエリの合計

    3. SSISパッケージを実行するステップをSQLServerエージェントジョブに作成するにはどうすればよいですか?

    4. Nodejsは、私が期待することを行わないことを表明し、約束します