【发布时间】:2010-01-20 09:50:06
【问题描述】:
谁能告诉我 innodb_buffer_pool_size 和 innodb_log_file_size 是什么?增加它的大小后会发生什么..
【问题讨论】:
谁能告诉我 innodb_buffer_pool_size 和 innodb_log_file_size 是什么?增加它的大小后会发生什么..
【问题讨论】:
innodb_buffer_pool_size 是用于缓存表、索引和其他一些东西的内存量。这是主要的可调参数,出于性能原因,您需要将其设置得相当高 - 有很多资源在讨论这个问题。
innodb_log_file_size 是提交日志文件的大小(通常有两个),它确实会影响性能,但影响不大。阅读文档以获取更多信息。
innodb_log_file_size 不应设置为与当前文件大小不同的值,否则服务器将无法启动。这意味着如果你想改变它,你应该彻底关闭服务器,删除现有的日志,它会创建新的。
另一方面,如果数据库在需要恢复时没有完全关闭,则不应删除日志。
【讨论】:
innodb_log_file_size 值对性能影响很大。不幸的是,大多数系统管理员认为缓冲池大小是唯一重要的事情,但事实并非如此。
只需在现有答案中添加更多详细信息,
innodb_buffer_pool_size 是 MySQL 的总缓存大小。
每当有读请求时,MySQL 服务器以 BufferPages 的LinkedList 的形式将数据缓存在 RAM 中。当写入恰好已加载到内存 (RAM) 中的行时,MySQL 会更新内存中的行并将页面(现在是脏的)转移到另一个 LinkedList,BufferPool的成员>.
另一个名为 PageCleaner 的组件在后台运行并释放内存并将数据写入磁盘。
innodb_log_file_size 是日志文件的大小(以字节为单位)。存在多个日志文件供 MySQL 写入数据。这个特定的系统变量告诉其中一个日志文件的文件大小。 recovery 和 log-replication 需要这些日志文件,即确保在主节点死亡时,从节点拥有所需的数据。
【讨论】: