改善MySQL问题。 (innodb_log_file_size)

时间:2019-02-05 10:10:24

标签: mysql mariadb innodb

我们正在努力提高数据库服务器的效率。

MySQLTunner的建议之一是将innodb_log_file_size增加到12 GB。如我们所见,此更改可以显着提高查询的速度和性能。当我们将此参数增加到超过1 GB时,问题就来了,服务将无法启动,我们将删除日志,将其干净地停止,但仍无法使用高于1 GB的此参数启动。

Someinfo:

mysql  Ver 14.14 Distrib 5.5.62, for debian-linux-gnu

innodb_buffer_pool_size = 100G 
innodb_file_per_table   = ON
innodb_buffer_pool_instances = 64 
innodb_stats_on_metadata = OFF
innodb_log_file_size = 1G 
innodb_log_buffer_size  = 8M

分区中有足够的空间来保持此日志大小

谢谢!

3 个答案:

答案 0 :(得分:1)

在该旧版本中更改log_file_size非常棘手。有关步骤,请参见https://dba.stackexchange.com/questions/1261/how-to-safely-change-mysql-innodb-variable-innodb-log-file-size/4103#4103

但是,我预测更改log_file_size不会有太大帮助。 “性能”通常意味着一些缓慢的查询。您是否打开了慢日志?值long_query_time低吗?找到一些最糟糕的查询;我们可以通过解决它们来提高性能。为此,请执行以下操作:http://mysql.rjweb.org/doc.php/mysql_analysis

答案 1 :(得分:0)

如果更改innodb_log_file_size参数,则需要删除旧的日志文件。否则,如果现有文件与配置文件中指定的大小不匹配,则Innodb将无法成功启动。

另一方面,如果仅运行InnoDB,则innodb_buffer_pool_size应该设置为可用RAM的大约70%。

答案 2 :(得分:0)

在MySQL 5.5中,您不能将innodb日志文件的大小增加到超过4GB。 innodb_log_file_size只能是4GB / innodb_log_files_in_group(默认为2GB,更改它没有任何好处)。因此,您可以将日志文件设置为最大2GB。

请参见https://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar_innodb_log_file_size

在5.6.3中,日志文件的最大合并大小增加到512GB。同样,innodb_log_file_size应该是一个 日志文件的大小,因此,如果您使用多个日志文件,则总数不能超过512GB。

我同意里克·詹姆斯(Rick James)的回答,即增加日志文件的大小并不是使查询运行更快的神奇解决方案。它不会那样做。

有时候增加innodb日志文件的大小很有用,如果瓶颈是日志空间用尽的速度快于将脏页刷新到表​​空间的速度,因为您的写流量非常高。这受写入速度的影响,而不是单个写入的速度。

对于大多数应用程序,两个2GB日志文件已绰绰有余。如果不是,那么可能是时候运行多个MySQL实例,并尽可能平均地在它们上分配写流量了。