mysql 什么是innodb_buffer_pool_size和innodb_log_file_size?

9o685dep  于 2023-10-15  发布在  Mysql
关注(0)|答案(2)|浏览(85)

有谁能告诉我innodb_buffer_pool_sizeinnodb_log_file_size MySQL参数是什么?
增加尺寸后会发生什么?

8wigbo56

8wigbo561#

innodb_buffer_pool_size是用来缓存表、索引和其他一些东西的内存量。这是主要的可调参数,出于性能原因,您可能希望将其设置得相当高-有大量的资源在讨论这一点。
innodb_log_file_size是提交日志文件的大小(通常有两个),这确实会影响性能,但影响不大。阅读文档以了解更多信息。
innodb_log_file_size不应设置为与当前文件大小不同的值,否则服务器将无法启动。这意味着,如果你想改变它,你应该干净地关闭服务器,删除现有的日志,它将创建新的。
另一方面,如果数据库没有干净地关闭,则不应删除日志,因为它需要它们来恢复。

6yjfywim

6yjfywim2#

只是在现有答案的基础上增加更多细节,

innodb_buffer_pool_size是MySQL的总缓存大小。

每当有读请求时,MySQL服务器会将数据以BufferPagesLinkedList的形式缓存在RAM中。当写入一行时,恰好已经加载到内存(RAM)中,MySQL会在内存中更新该行,并将页面(现在是脏的)转移到另一个LinkedListBufferPool的成员。
另一个名为PageCleaner的组件在后台运行,释放内存并将数据写入磁盘。

innodb_log_file_size是日志文件的大小(字节)。存在多个日志文件供MySQL写入数据。这个特定的系统变量告诉这样的日志文件之一的文件大小。* * 恢复日志复制**需要这些日志文件,即用于确保如果主节点死亡,则从节点具有所需的数据。

相关问题