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

mysqlのインデックスが多すぎますか?

    データの取得-SELECTステートメント。

    データ操作-INSERT、UPDATE、DELETEステートメント。

    より良いデータ取得パフォーマンスが必要だと感じた場合。

    大量のデータ操作(挿入、更新...

    )が発生するテーブル

    クエリは、カバーするインデックス(複数の列のインデックス)を処理するときに、インデックス列定義の左から右への列の順序に対処する必要があります。ステートメントの列の順序は重要ではなく、列1、2、および3の順序のみです。インデックスを使用する前に、ステートメントに列1への参照が必要です。列2または3への参照しかない場合、1/2/3のカバーインデックスは使用できませんでした。

    MySQLでは、クエリのSELECT /ステートメントごとに使用できるインデックスは1つだけです(サブクエリなどは個別のステートメントと見なされます)。また、MySQLで許可されるテーブルあたりのスペースの量には制限があります。さらに、インデックス付きの列で関数を実行すると、インデックスが役に立たなくなります-IE:

    WHERE DATE(datetime_column) = ...
    


    1. 異なるデータベースを使用するデータベースとスキーマの違いは?

    2. 外部キー制約で使用される列を変更できません

    3. varcharまたはintの主キーを使用してテーブルを設計する必要がありますか?

    4. Django管理者MySQL低速内部結合