什么是innodb_buffer_pool_size&innodb_log_file_size?

Vee*_*Vee 10 mysql innodb

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

Mar*_*rkR 15

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

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

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

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

  • +1!我可能只是注意到innodb_log_file_size会对性能产生很大影响(但如果他们的数据库完全读取,并不是每个人都会看到它).盲目提高这一点也存在更多担忧,因为非常大的价值会增加恢复时间. (2认同)

swa*_*ina 6

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

innodb_buffer_pool_size是 MySQL 的总缓存大小。每当有读请求时,MySQL服务器都会以BufferPages
形式将数据缓存在RAM中。当写入一行恰好已经加载到内存(RAM)中时,MySQL 会更新内存中的行并将页面(现在是脏的)转移到BufferPool的另一个成员。 另一个组件称为PageCleaner,在后台运行并释放内存并将数据写入磁盘。 innodb_log_file_size是日志文件的大小(以字节为单位)。MySQL存在多个日志文件来写入数据。这个特定的系统变量告诉此类日志文件之一的文件大小。这些日志文件是恢复日志复制所必需的,即确保如果主节点死亡,从节点仍具有所需的数据。LinkedListLinkedList