インデックスタイプ

Bツリー
ビットマップ


BTREE →InnoDBMyISAM、MEMORY
HASH →MEMORY

※適応型ハッシュインデックス
InnoDB テーブルの最適化として、メモリー内にハッシュインデックスを構築する


CREATE TABLE tab31 (col1 int,col2 int) ENGINE = InnoDB;
CREATE TABLE tab32 (col1 int,col2 int) ENGINE = MyISAM;
CREATE TABLE tab33 (col1 int,col2 int) ENGINE = MEMORY;

CREATE INDEX ind311 ON tab31 (col1) USING BTREE;
CREATE INDEX ind312 ON tab31 (col2) USING HASH;

CREATE INDEX ind321 ON tab32 (col1) USING BTREE;
CREATE INDEX ind322 ON tab32 (col2) USING HASH;

CREATE INDEX ind331 ON tab33 (col1) USING BTREE;
CREATE INDEX ind332 ON tab33 (col2) USING HASH;

サポート外のインデックスを作成してもエラーにはならない。
内部でHASH→BTREEに暗黙変換している?

show create table tab31;
show create table tab32;
show create table tab33;

B-tree
Hash

create index concurrently ind11 on tab1 using btree (col1);
create index concurrently ind12 on tab1 using hash (col1);

BTREE

HASH(インメモリデータベースで使用可能)