[SQL]-インデックスの実際の使用


1.索引の作成

  • 構文
  • CREATE [UNIQUE] INDEX 인덱스_이름
    ON 테이블_이름 (열_이름) [ASC | DESC]
    インデックスを作成する前に


    Index lengthは0
  • 単純補助インデックス(重複可能アドレス)
  • を作成
    CREATE INDEX idx_member_addr
    ON member(addr);
    作成の確認

    総インデックス・サイズの確認

    ANALYZE TABLEを使用して有効にする
    ANALYZE TABLE member;
  • 一意の補助インデックス(重複メンバー名Xを許可)
  • を作成します.
    CREATE UNIQUE INDEX idx_member_mem_name
    ON member(mem_name);

    ユニークなインデックスを作成すると、重複する値は入力されません.
    重複するデータの多いカラムにインデックスを作成することは意味がなく、パフォーマンスに影響します.

    2.インデックスを使用する実践

    ANALYZE TABLE member;
    SHOW INDEX FROM member;

    インデックスを使用するには、インデックスを生成するカラム名をWHERE文に含める必要があります.
    SELECT mem_id, mem_name, addr
    FROM member
    WHERE mem_name = '에이핑크';
    WHEREがカラムを演算した場合、インデックスは使用されません.

    3.索引の削除

  • 構文
  • DROP INDEX 인덱스_이름 ON 테이블_이름
    DROP INDEX idx_member_mem_name ON member;  
    DROP INDEX idx_member_addr ON member;      
    DROP INDEX idx_member_mem_number ON member;
    まず補助インデックスを削除したほうがいいです.
    クラスタインデックスを先に削除すると、データを再構成する必要がなくなり、時間が長くなります.
    クエリ
  • 外部キー名
  • SELECT TABLE_NAME, CONSTRAINT_NAME
    FROM information_schema.referential_constraints
    WHERE CONSTRAINT_SCHEMA = 'market_db';

    4.インデックスの有効な使用


  • インデックスはカラム単位で生成されます.

  • WHEREセクションで使用するカラムにインデックスを作成する必要があります.

  • WHEREの日に使っても、常に使ってこそ価値があります.

  • 重複データの高いカラムにインデックスを作成しても効果はありません.

  • テーブルごとに1つのクラスタインデックスしか作成できません.

  • 使用しないインデックスを削除します.