簡単な答え:
インデックスは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インデックス-何ですかベストプラクティス?