一般に、低速の SELECT ... WHERE
        の速度を上げる必要がある場合は、まず、インデックスを追加できるかどうかをチェックします。See
        項5.4.3. 「MySQL でのインデックスの使用」。一般に複数のテーブル間の参照はすべてインデックスを使用して実行する必要があります。EXPLAIN
        コマンドを使用して、SELECT
        に使用されるインデックスを判定できます。 See
        項5.2.1. 「EXPLAIN 構文(SELECT
        に関する情報の取得)」。
      
一般的なヒント
            MySQL
            によるクエリの最適化を容易にするには、関連データをロードした後にテーブルに対して
            myisamchk --analyze
            を実行する。これはインデックスのために、同じ値があるレコードの平均値を更新する(ユニークインデックスの場合、これは常に
            1 になる)。MySQL はこれを使用して、2
            つのテーブルを '非定数式'
            で接続する際に選択するインデックスを判定する。
            SHOW INDEX FROM table_name を実行し
            Cardinality
            カラムを調べると、analyze
            の実行結果をチェックできる。
          
            インデックスに従ってインデックスとデータをソートするには
            myisamchk --sort-index
            --sort-records=1(インデックス 1
            でソートする場合)を使用する。速度を上げるには、すべてのレコードの読み取りにユニークインデックスを使用し、そのインデックスに従った順序で読み取りを行うように推奨される。ただし、このソートでは書き込みの最適化はできず、テーブルが大きい場合は時間がかかる。
          
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

