MySQL INNODB微调在什么时候成为一项要求?

MySQL INNODB微调在什么时候成为一项要求?,mysql,innodb,virtual-machine,lamp,Mysql,Innodb,Virtual Machine,Lamp,我看了一下这个: 和: 这些回答了我很多关于INNODB和MyISAM的问题。毫无疑问,INNODB是我应该走的路。然而,我正在自己工作,为了开发,我创建了一个LAMP(Ubuntu10.10 x64)虚拟机服务器。目前,服务器有2 GB内存和一个SATA 20GB驱动器。我可以在不太麻烦的情况下将这两个容量增加到大约3-3.5 GB内存和200 GB驱动器 我犹豫切换到INNODB的原因是: A)上述文章提到INNODB将大大增加表的大小,他建议使用更大的RAM和驱动器空间。在生产环境中,

我看了一下这个:

和:

这些回答了我很多关于INNODB和MyISAM的问题。毫无疑问,INNODB是我应该走的路。然而,我正在自己工作,为了开发,我创建了一个LAMP(Ubuntu10.10 x64)虚拟机服务器。目前,服务器有2 GB内存和一个SATA 20GB驱动器。我可以在不太麻烦的情况下将这两个容量增加到大约3-3.5 GB内存和200 GB驱动器

我犹豫切换到INNODB的原因是:
A)上述文章提到INNODB将大大增加表的大小,他建议使用更大的RAM和驱动器空间。在生产环境中,我不介意这种增长,但在开发环境中,我恐怕无法适应。
B)我认为在我的虚拟机上微调INNODB引擎没有任何意义。这可能是我在生产环境中甚至不被允许做的事情。这些文章让人觉得,如果不进行微调,INNODB注定要失败

我的问题是。INNODB在什么情况下可行?我需要多少RAM才能在我的服务器上运行INNODB(只有我的数据用于测试。这个服务器只对我开放)?而且,假设一个不允许我微调DB的生产环境很可能已经对DB进行了微调,这对我来说安全吗


还有,我是不是想得太多了?

我想你可能是想得太多了。INNODB确实喜欢ram,但如果你的数据库很小,我认为你不会有很多问题。我在MYSQL或任何其他数据库中遇到的唯一问题是,随着数据的增长,快速访问数据的需求也会随之增加。您还可以对表进行压缩以使其更小,但INNODB在数据完整性方面要比MYISAM好得多


在遇到瓶颈之前,我也不会担心调整应用程序。编写高效的查询和数据库设计似乎比内存更重要,除非您使用的是非常大的数据集

IMHO,当您有成千上万行时,或者当您可以预测数据的增长率时,这就成为了一项要求

您需要重点调整innodb缓冲池和日志文件大小。此外,请确保已启用innodb_file_per_table

要了解innodb缓冲池的大小(KB),请运行以下查询:

SELECT SUM(data_length+index_length)/power(1024,1) IBPSize_KB
FROM information_schema.tables WHERE engine='InnoDB';
这是MB

SELECT SUM(data_length+index_length)/power(1024,2) IBPSize_MB
FROM information_schema.tables WHERE engine='InnoDB';
这里是GB

SELECT SUM(data_length+index_length)/power(1024,3) IBPSize_GB
FROM information_schema.tables WHERE engine='InnoDB';
我写过关于这种调整的文章


如果您受到服务器上RAM数量的限制,为了操作系统,请勿超过已安装内存的25%。

谢谢您的全面回答。我会仔细考虑,可能会切换到INNODB。哇,对于我的环境来说,计算的内存量太大了。计算出应该分配给缓冲池的内存量(MB)?你确定不是KB吗?@rolandmysqldba,启用每个表的innodb文件有什么好处?在哪些情况下适用?谢谢,谢谢你的见解。我一定会考虑的。