Bツリー
ビットマップ
BTREE →InnoDB、MyISAM、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(インメモリデータベースで使用可能)