问题正在改进 MySQL。 (innodb_log_file_size)

Problem improving MySQL. (innodb_log_file_size)

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

MySQLTunner 的建议之一是将 innodb_log_file_size 增加到 12 GB。正如我们所看到的,这一变化可以显着提高我们查询的速度和性能。当我们将此参数增加到 1 GB 以上时,问题就来了,服务无法启动,我们删除日志,干净地停止它,并且仍然无法在 1 GB 以上的参数启动。

一些信息:

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

分区中有足够的算法 space 来保持此日志大小

谢谢!

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

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

更改旧版本中的 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 不会有太大帮助。 "Performance" 通常意味着一些缓慢的查询。你有没有打开慢日志? long_query_time 的低值?找到几个最差的查询;我们可能可以通过解决它们来提高性能。步骤:http://mysql.rjweb.org/doc.php/mysql_analysis

在 MySQL 5.5 中,您不能将 innodb 日志文件的大小增加到总计超过 4GB。 innodb_log_file_size 只能是 4GB / innodb_log_files_in_group(默认情况下为 2,更改它没有任何好处)。所以您可以将日志文件设置为最大 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 日志文件的大小是有用的,如果瓶颈是你 运行 出日志 space 比脏页刷新到 tablespace,因为你的写入流量非常高。这受写入速率的影响,而不是单个写入的速度。

对于大多数应用程序来说,两个 2GB 的日志文件绰绰有余。如果不是,可能是时候 运行 多个 MySQL 实例,并尽可能均匀地分配写入流量。