InnoDB エンジンに約 100,000 行のデータを格納したテーブルがあります。データをメモリ エンジン テーブルにコピーしただけですが、新しいテーブルのサイズが元のテーブルよりもかなり大きいことがわかりました。なんで?
| Rows | Engine | Size |
| 96702 | Memory|741MB|
|96952|InnoDB|28MB|
なぜ?
InnoDB エンジンに約 100,000 行のデータを格納したテーブルがあります。データをメモリ エンジン テーブルにコピーしただけですが、新しいテーブルのサイズが元のテーブルよりもかなり大きいことがわかりました。なんで?
| Rows | Engine | Size |
| 96702 | Memory|741MB|
|96952|InnoDB|28MB|
なぜ?
メモリ エンジン テーブルは、固定長の行ストレージ形式を使用します。VARCHAR などの可変長型は、固定長を使用して格納されます。
注: InnoDB エンジンからメモリ エンジンへのデータのロードは、実際には SQL のアンチパターンです (データの重複のため)。MySQL サーバーで InnoDB バッファー プールを構成する必要があります。メモリ エンジンは行ロック ベースであるため、InnoDB は多数のクライアントを含むメモリ エンジンよりも優れたパフォーマンスを発揮します。
メモリ エンジンのドキュメントを参照してください。