0

我有一个表在 InnoDB 引擎中存储了大约 100,000 行数据。我只是将数据复制到内存引擎表中,但我发现新表的大小比原始表大得多。为什么?

| Rows | Engine | Size |

| 96702 | Memory|741MB|

|96952|InnoDB|28MB|

为什么?

4

1 回答 1

0

内存引擎表使用固定长度的行存储格式。VARCHAR 等可变长度类型使用固定长度存储。

注意:将数据从 InnoDB 引擎加载到内存引擎实际上是一种 SQL 反模式(因为数据重复)。你真的应该在你的 MySQL 服务器上配置 InnoDB 缓冲池。然后,InnoDB 将优于具有许多客户端的 Memory 引擎,因为 Memory 引擎是基于行锁定的

请参阅内存引擎的文档

于 2013-09-28T14:52:17.263 回答