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


10

在使InnoDB数据库可用之前,服务器或数据库管理员应了解和做什么。

我正在考虑为innodb_buffer_pool_size和设置正确的值innodb_log_file_size

那么,您忘了配置哪些简单的事情,这些简单的事情会使使用数据库的应用程序无法达到最佳状态呢?

Answers:


14

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

只要您根本不使用myisam,就可以安全地将几乎所有max_connections内存(保持足够的运行以使您的OS舒适地运行,并且足以存储您的内存)分配给innodb_buffer_pool。InnoDB的优点在于它可以自己处理几乎所有的内存内容,而无需分离查询缓存,键缓冲区等内容。

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

innodb_log_file_sizeinnodb_log_buffer_size结合必须大于十倍的最大BLOB的对象,如果你有很多的路数。如果不这样做(和你不应该[ 12 ]),实在没必要多此一举了很多与它。查看MySQL Performance Blog以获取有关如何计算的详细报告。

并且,当您运行MySQL一段时间后,请使用MySQLTunerMySQL Tuning Primer检查设置。

有关更详细的报告,请尝试mysqlreport,对于实时监视,请检查mytop


关于innodb_file_per_table要记住的一件事是,用于恢复磁盘空间的方法是不同的。使用ibdata文件,您可以通过删除表的末尾来恢复表空间中的空间。由于不能删除单个表文件空间,因此必须使用优化表重建表以将空间返回给文件系统。Optimize锁定表,因此可能导致应用程序停机。
mtinberg

2

对我来说,一个小的“惊奇”是innodb默认情况下为所有数据库/表使用一个文件。与MyISAM表相反,后者使用每个数据库的目录和每个表/ tableindex的文件。

如果您习惯于在表的基础上缩小物理文件(优化表xxx),那可能会很重要

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.