頻繁にアクセスされ、読み取り専用かめったに更新されない非クリティカルデータに 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 ツリーインデックスとハッシュインデックスの比較」を参照してください。