谁能告诉我什么是innodb_buffer_pool_size& innodb_log_file_size?增加它的尺寸后会发生什么......
答案 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有多个日志文件可以将数据写入其中。此特定的系统变量告诉此类日志文件之一的文件大小。这些日志文件是恢复和日志复制所必需的,即,确保主节点死亡时,从节点具有所需的数据。