Answers:
在开始之前,您应该考虑一些配置选项。
只要您根本不使用myisam,就可以安全地将几乎所有max_connections
内存(保持足够的运行以使您的OS舒适地运行,并且足以存储您的内存)分配给innodb_buffer_pool
。InnoDB的优点在于它可以自己处理几乎所有的内存内容,而无需分离查询缓存,键缓冲区等内容。
我建议您启用innodb_file_per_table
,因为它使浏览文件系统和查看不同表和数据库需要多少空间变得容易得多。您仍然需要一个通用的ibdata文件供InnoDB内部使用,但是您可以将其定义为10M:autoextend
。无需定义许多具有预分配大小的innodb数据文件。
innodb_log_file_size
并innodb_log_buffer_size
结合必须大于十倍的最大BLOB的对象,如果你有很多的路数。如果不这样做(和你不应该[ 1,2 ]),实在没必要多此一举了很多与它。查看MySQL Performance Blog以获取有关如何计算的详细报告。
并且,当您运行MySQL一段时间后,请使用MySQLTuner或MySQL Tuning Primer检查设置。
有关更详细的报告,请尝试mysqlreport,对于实时监视,请检查mytop。
对我来说,一个小的“惊奇”是innodb默认情况下为所有数据库/表使用一个文件。与MyISAM表相反,后者使用每个数据库的目录和每个表/ tableindex的文件。
如果您习惯于在表的基础上缩小物理文件(优化表xxx),那可能会很重要