mysql
2 つのテーブルを結合し、いくつかの where 句と order by を持つクエリの最適化に取り組んでいます。
クエリの評価中に一時テーブルが作成されることに気付きました (説明を使用)。(結合キューの最初のテーブルではないテーブルのフィールドでグループ化しているため)
この一時テーブルがディスクに書き込まれているかどうかを知りたいのですが、説明の結果ではわかりません。
また、一時テーブルに何が入っているかを正確に把握できると便利です。where 句の制限には、インデックス付きの列に関するものとそうでないものがあるため、mysql が行を一時テーブルに最適に選択していない可能性があると思います。
具体的には、私のクエリは基本的に次の形式です。 select ... from a join b where ... インデックス付き列とインデックス付き列の両方で a と b の両方に制限があります。問題は、 a から選択された一時テーブルに入る行数が、私が思っているよりも多いことです。これを調べたい。