[SQL]-インデックスの内部操作


1.バランスツリーの概念


ノード:データを格納するスペース
ルートノード:ノードの最上位ノード
リーフノードリーフノード:最後に存在するノード
中間ノードちゅうかんでーた:ルート、リーフの間に挟まれたノード
ページ:MySQLで呼び出されたノード
  • バランスツリーは、ルートページから無条件に検索を開始します.
  • 2.バランスツリーでのページ分割


    ルートノードに位置がない場合は、ルートノードを分割します.
    ページ分割はMySQLに大きな負担をもたらします.

    3.クラスタインデックスの構成

    USE market_db;
    CREATE TABLE cluster
    (mem_id CHAR(8),
    mem_name VARCHAR(10)
    );
    
    INSERT INTO cluster VALUES('TWC', '트와이스');
    INSERT INTO cluster VALUES('BLK', '블랙핑크');
    INSERT INTO cluster VALUES('WMN', '여자친구');
    INSERT INTO cluster VALUES('OMY', '오마이걸');
    INSERT INTO cluster VALUES('GRL', '소녀시대');
    INSERT INTO cluster VALUES('ITZ', '잇지');
    INSERT INTO cluster VALUES('RED', '레드벨벳');
    INSERT INTO cluster VALUES('APN', '에이핑크');
    INSERT INTO cluster VALUES('SPC', '우주소녀');
    INSERT INTO cluster VALUES('MMU', '마마무');

    入力順と同じように見えます
  • クラスタインデックス構成
  • ALTER TABLE cluster
    ADD CONSTRAINT
    PRIMARY KEY(mem_id);

    昇順ソート

    4.補助インデックスの構成

    USE market_db;
    CREATE TABLE second
    (mem_id CHAR(8),
    mem_name VARCHAR(10)
    );
    
    INSERT INTO second VALUES('TWC', '트와이스');
    INSERT INTO second VALUES('BLK', '블랙핑크');
    INSERT INTO second VALUES('WMN', '여자친구');
    INSERT INTO second VALUES('OMY', '오마이걸');
    INSERT INTO second VALUES('GRL', '소녀시대');
    INSERT INTO second VALUES('ITZ', '잇지');
    INSERT INTO second VALUES('RED', '레드벨벳');
    INSERT INTO second VALUES('APN', '에이핑크');
    INSERT INTO second VALUES('SPC', '우주소녀');
    INSERT INTO second VALUES('MMU', '마마무');
    SELECT * FROM SECOND;ALTER TABLE second
    ADD CONSTRAINT
    unique(mem_id);
    SELECT * FROM second;

    内部では、補助インデックスを作成すると、インデックスは別のスペースに作成されます.

    5.インデックス内のデータの検索

  • クラスタまたは補助インデックスを使用して検索します.
  • の速度は、インデックスが使用されていない場合よりも速い.