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

mysqlでINDEXESを使用する最大の利点は何ですか?

    簡単な答え:
    インデックスはSELECTを高速化します の速度を落とし、INSERT の。

    selectの速度が上がるため、通常はインデックスを作成することをお勧めします。 insertを遅くする以上のこと 。

    UPDATEについて インデックスは物事をスピードアップすることができます WHEREでインデックス付きフィールドが使用されている場合 updateの場合は、句を使用して処理を遅くします インデックス付きフィールドの1つ。

    インデックスをいつ使用するかをどのように知るか

    EXPLAINを追加します SELECTの前 ステートメント。
    そのように:

    EXPLAIN SELECT * FROM table1 
    WHERE unindexfield1 > unindexedfield2 
    ORDER BY unindexedfield3
    

    インデックス付けされていない各フィールドでMySQLが実行する必要のある作業量が表示されます。
    使用 その情報は、インデックスを追加する価値があるかどうかを判断できます。

    Explainは、ドロップしてインデックスを作成する方がよいかどうかも教えてくれます

    EXPLAIN SELECT * FROM table1 
    WHERE indexedfield1 > indexedfield2 
    ORDER BY indexedfield3
    

    選択された行が非常に少ない場合、またはMySQLが無視することを決定した場合 インデックス(時々それを行います) 次に、インデックスを削除することをお勧めします。これは、インデックスがであるためです。 insertの速度を落とす sただし、selectの速度は上がりません

    次に、selectステートメントが十分に賢くない可能性もあります。
    (答えが複雑であるため、申し訳ありませんが、単純にしようとして失敗しました)。

    リンク:
    MySQLインデックス-何ですかベストプラクティス?



    1. SQL Server(T-SQL)でデータファイルのサイズを縮小する方法

    2. プロアクティブなSQLServerヘルスチェック、パート5:待機統計

    3. データストレージ:アーカイブおよびHSMのRESTとPOSIX

    4. 関数Javascriptを返す