MySQL MyISAM 和 innoDB 内存使用情况

原文 标签 mysql memory innodb myisam

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

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

任何帮助,将不胜感激。

谢谢,
jb

最佳答案

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

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

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

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

关于MySQL MyISAM 和 innoDB 内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/262798/

相关文章:

mysql - 如何在一个查询中从多个表中删除数据

memory - 单次调用 fgetcsv() 耗尽了 PHP 中的大内存限制

mysql - 具有自动生成键的外键约束,基本问题(InnoDB)

mysql - 尝试从两个具有默认值的表中选择每个组合

php - SQL/PHP顺序ID号

MySQL 查询 - 使用 ORDER BY rand() 强制区分大小写

c - C-fprintf()和printf()删除数组元素内存

linux - Linux RHEL上的RabbitMQ内部存储器路径映射到另一个位置

mysql - 在与MySQL 5.1.69的innoDB混合使用的情况下,无法创建名称为Service的表

mysql - 如何在 MySQL 上创建事件流