在使用InnoDB数据库之前应该知道什么?

在创buildInnoDB数据库之前,服务器或数据库pipe理员应该了解和做什么。

我正在考虑为innodb_buffer_pool_sizeinnodb_log_file_size设置正确的值

那么,你会忘记configuration什么简单的东西,会导致使用数据库的应用程序工作得更less?

在开始之前,您应该考虑一些configuration选项。

只要你根本没有使用myisam,你就可以安全的分配几乎所有的东西(保证你的操作系统运行起来很舒服,足够你的max_connections ),把你的内存分配给innodb_buffer_pool 。 InnoDB的好处是可以自己处理几乎所有的内存,而不需要像查询caching,密钥缓冲区等。

我build议你启用innodb_file_per_table ,只是因为它使得浏览文件系统变得容易很多,看看不同的表和数据库需要多less空间。 您仍然需要InnoDB内部使用的通用ibdata文件,但是您可以将其定义为10M:autoextend 。 不需要用预先分配的大小定义许多不同的innodb数据文件。

innodb_log_file_sizeinnodb_log_buffer_size组合必须大于十倍于最大的blob对象,如果你有很多大的对象。 如果你不这样做(你不应该[ 1,2 ]),那么真的不需要费太多心思。 查看MySQL性能博客 ,了解如何计算的详细报告。

当你运行你的MySQL一段时间,用MySQLTuner或MySQL Tuning Primer检查你的设置。

有关更详细的报告,请尝试mysqlreport ,并进行实时监控,请检查mytop 。

对我来说有一点“惊喜”是innodb默认使用一个文件来存放所有的数据库/表格。 与使用每个数据库的目录和每个表/ tableindex的文件的MyISAM表相反。

如果您习惯以表为基础收缩物理文件,那么这可能很重要(优化表xxx)