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

インデックスの使用、一時的な使用、ファイルソートの使用-これを修正する方法は?

    ええと、ドキュメント 「一時的な使用」が表示される正確な理由を示します:

    一時テーブルは、次のような条件下で作成できます。

    ORDERBY句と別のGROUPBY句がある場合、またはORDERBYまたはGROUPBYに参加キューの最初のテーブル以外のテーブルの列が含まれている場合は、一時テーブルが作成されます。

    DISTINCTとORDERBYを組み合わせると、一時テーブルが必要になる場合があります。

    SQL_SMALL_RESULTオプションを使用する場合、クエリにディスク上のストレージを必要とする要素(後で説明)も含まれていない限り、MySQLはメモリ内の一時テーブルを使用します。

    クイックスキャンは、あなたが#1に苦しんでいることを示しています。

    そして、このブログ 2009年以降、「filesortを使用する」とは、インデックスを使用して並べ替えを実行できないことを意味します。計算フィールドで並べ替えているので、それも当てはまります。

    だから、それが「間違っている」のです。



    1. SQL:2つの日付の違い

    2. OracleデータベースでPL/SQLパッケージを作成する方法

    3. COUNTSQL関数のパフォーマンス

    4. 再帰SQLクエリを作成することは可能ですか?