Jacco Asked: 2009-05-05 04:34:42 +0800 CST2009-05-05 04:34:42 +0800 CST 2009-05-05 04:34:42 +0800 CST 在使用 InnoDB 数据库之前我应该知道什么? 772 在使 InnoDB 数据库可用之前,服务器或数据库管理员应该知道和做什么。 innodb_buffer_pool_size我正在考虑为和设置正确的值之类的事情innodb_log_file_size 那么,您会忘记配置哪些简单的事情会导致使用数据库的应用程序无法以最佳方式工作呢? mysql innodb 2 个回答 Voted Best Answer Nils-Anders Nøttseter 2009-05-05T05:19:57+08:002009-05-05T05:19:57+08:00 在开始之前,您应该考虑一些配置选项。 只要您根本不使用 myisam,您就可以安全地将几乎所有(保持足够让您的操作系统舒适运行,并且足够让您的max_connections)内存分配给innodb_buffer_pool. InnoDB 的好处是它自己处理几乎所有的内存内容,无需分离查询缓存、键缓冲区等内容。 我建议您启用innodb_file_per_table,只是因为它可以更轻松地浏览文件系统并查看不同的表和数据库需要多少空间。您仍然需要一个通用的 ibdata 文件供 InnoDB 内部使用,但您可以将其定义为10M:autoextend. 无需定义许多具有预分配大小的不同 innodb 数据文件。 innodb_log_file_size如果你有很多大的 blob 对象,并且innodb_log_buffer_size组合必须大于你最大的 blob 对象的十倍。如果你不这样做(而且你不应该 [ 1 , 2 ]),那么真的没有必要为它费心。查看MySQL 性能博客以获取有关如何计算的详细报告。 当您运行 MySQL 一段时间后,请使用MySQLTuner或MySQL Tuning Primer检查您的设置。 要获得更详细的报告,请尝试mysqlreport,而要进行实时监控,请查看mytop。 nos 2009-07-04T09:45:39+08:002009-07-04T09:45:39+08:00 对我来说,一个小小的“惊喜”是 innodb 默认使用一个文件来存储所有数据库/表。与 MyISAM 表相反,MyISAM 表使用每个数据库的目录和每个表/表索引的文件。 如果您习惯于按表缩小物理文件,这可能很重要(优化表 xxx)
在开始之前,您应该考虑一些配置选项。
只要您根本不使用 myisam,您就可以安全地将几乎所有(保持足够让您的操作系统舒适运行,并且足够让您的
max_connections
)内存分配给innodb_buffer_pool
. InnoDB 的好处是它自己处理几乎所有的内存内容,无需分离查询缓存、键缓冲区等内容。我建议您启用
innodb_file_per_table
,只是因为它可以更轻松地浏览文件系统并查看不同的表和数据库需要多少空间。您仍然需要一个通用的 ibdata 文件供 InnoDB 内部使用,但您可以将其定义为10M:autoextend
. 无需定义许多具有预分配大小的不同 innodb 数据文件。innodb_log_file_size
如果你有很多大的 blob 对象,并且innodb_log_buffer_size
组合必须大于你最大的 blob 对象的十倍。如果你不这样做(而且你不应该 [ 1 , 2 ]),那么真的没有必要为它费心。查看MySQL 性能博客以获取有关如何计算的详细报告。当您运行 MySQL 一段时间后,请使用MySQLTuner或MySQL Tuning Primer检查您的设置。
要获得更详细的报告,请尝试mysqlreport,而要进行实时监控,请查看mytop。
对我来说,一个小小的“惊喜”是 innodb 默认使用一个文件来存储所有数据库/表。与 MyISAM 表相反,MyISAM 表使用每个数据库的目录和每个表/表索引的文件。
如果您习惯于按表缩小物理文件,这可能很重要(优化表 xxx)