MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  最適化  /  MEMORY テーブルの最適化

8.7 MEMORY テーブルの最適化

頻繁にアクセスされ、読み取り専用かめったに更新されない非クリティカルデータに MEMORY テーブルを使用することを考慮します。 現実的なワークロードで、同等の InnoDB または MyISAM テーブルに対してアプリケーションのベンチマークを実行し、追加のパフォーマンスが、データの損失のリスクやアプリケーションの起動時にディスクベースのテーブルからデータをコピーすることのオーバーヘッドに値するかを確認します。

MEMORY テーブルで最高のパフォーマンスを得るには、各テーブルに対するクエリーの種類を調査し、関連付けられた各インデックスに使用する B ツリーインデックスまたはハッシュインデックスのいずれかの種類を指定します。 CREATE INDEX ステートメントで、句 USING BTREE または USING HASH を使用します。 B ツリーインデックスは、>BETWEEN などの操作によって、greater-than または less-than の比較を実行するクエリーで高速です。 ハッシュインデックスは、= 演算子によって単一の値、または IN 演算子によって制限された値のセットをルックアップするクエリーでのみ高速です。 USING BTREE が多くの場合にデフォルトの USING HASH より適切な選択である理由については、セクション8.2.1.23「全テーブルスキャンの回避」を参照してください。 さまざまな種類の MEMORY インデックスの実装の詳細については、セクション8.3.9「B ツリーインデックスとハッシュインデックスの比較」を参照してください。


関連キーワード:  テーブル, インデックス, InnoDB, クエリー, ステートメント, 結合, データ, 状態, データベース, MEMORY