MySQL はBTREE
インデックスの作成時にデフォルトで使用するため、使用できるインスタンスはありますHASH
か? たとえば、テーブルが単なるINT UNSIGNED
値である外部キーのみで構成されている場合。この場合、BTREE を HASH でオーバーライドすることは良い改善ですか?
それが問題かどうかはわかりませんが、私は使用してInnoDB
います。
HASH
インデックス タイプはMEMORY
(別名HEAP
) ストレージ エンジンでのみサポートされます。
ここを参照してください: https://dev.mysql.com/doc/refman/8.0/en/glossary.html#glos_hash_index
ハッシュ インデックス
大なり演算子や BETWEEN などの範囲演算子ではなく、等価演算子を使用するクエリを対象としたインデックスのタイプ。
It is available for MEMORY tables
. ハッシュ インデックスは歴史的な理由から MEMORY テーブルのデフォルトですが、そのストレージ エンジンは B ツリー インデックスもサポートしています。これは、多くの場合、汎用クエリに適した選択です。MySQL には、実行時の条件に基づいて必要に応じて InnoDB テーブル用に自動的に構築される、このインデックス タイプのバリアントであるアダプティブ ハッシュ インデックスが含まれています。