什么是innodb_buffer_pool_size& innodb_log_file_size?

时间:2010-01-20 09:50:06

标签: mysql innodb

谁能告诉我什么是innodb_buffer_pool_size& innodb_log_file_size?增加它的尺寸后会发生什么......

2 个答案:

答案 0 :(得分:15)

innodb_buffer_pool_size是用于缓存表,索引和其他一些内容的内存量。这是主要的可调参数,你会因为性能原因而将其设置得相当高 - 有很多资源可以讨论这个问题。

innodb_log_file_size是提交日志文件的大小(通常有两个),这确实会影响性能但不会影响性能。阅读文档以获取更多信息。

innodb_log_file_size不应设置为与当前文件大小不同的值,否则服务器将无法启动。这意味着如果您想要更改它,您应该干净地关闭服务器,删除现有日志,它将创建新日志。

另一方面,如果数据库没有完全关闭,则不应删除日志,因为它需要恢复。

答案 1 :(得分:0)

只需在现有答案中添加更多详细信息,

innodb_buffer_pool_size 是MySQL的总缓存大小。
每当有读取请求时,MySQL服务器就会以 BufferPages LinkedList的形式在RAM中缓存数据。当写入行时恰好已经加载到内存(RAM)中时,MySQL更新该行在内存中并将页面(现已变脏)移动到另一个LinkedList BufferPool < / strong>。
另一个名为 PageCleaner 的组件在后台运行,释放内存并将数据写入磁盘。

innodb_log_file_size 是日志文件的大小(以字节为单位)。 MySQL有多个日志文件可以将数据写入其中。此特定的系统变量告诉此类日志文件之一的文件大小。这些日志文件是恢复日志复制所必需的,即,确保主节点死亡时,从节点具有所需的数据。