1

有谁知道 MyISAM 和 innoDB 使用了多少内存?处理小表与处理大表(最大 32 GB)时,它们的内存使用情况如何比较?

我知道 innoDB 比 MyISAM 更重,但还有多少呢?

任何帮助,将不胜感激。

谢谢,jb

4

1 回答 1

7

你不能这样比较它们。或者至少,你不应该。每个人都以不同的方式使用内存。如果您正在调整数据库的性能,则尤其如此。

MyISAM 具有特定的索引缓冲区,它使用 OS 磁盘缓冲区来缓存其他数据。让你的缓冲区大于索引的总和是没有意义的,但是你给它的内存越多,它就会越快。

InnoDB 有一个用于所有数据的缓冲池。你可以根据你的可用内存和你想给它多少来配置它。InnoDB 将尽可能多的数据缓冲在内存中。如果您可以将整个 DB 放入内存中,InnoDB 将永远不会从磁盘读取。当数据大小大于缓冲池时,许多 InnoDB 数据库都会看到巨大的性能损失。

MySQL 是非常可配置的。它可以调整以满足您的需求。通常,应为数据库提供尽可能多的内存,因为它们几乎总是受磁盘限制。更多内存意味着可以缓冲更多。

于 2008-11-04T19:33:22.693 回答