我有一个表在 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 将优于具有许多客户端的 Memory 引擎,因为 Memory 引擎是基于行锁定的
请参阅内存引擎的文档。