返回顶部
首页 > 资讯 > 数据库 >如何设置innodb_log_file_size
  • 937
分享到

如何设置innodb_log_file_size

2024-04-02 19:04:59 937人浏览 薄情痞子
摘要

在这片文章中,我会提供一些关于如何设置 Mysql的 innodb_log_file_size 参数的一些建议。 跟其他数据库管理系统一样,mysql通过日志来实现数据的持久性(在使用InnoDB存储引擎的

在这片文章中,我会提供一些关于如何设置 Mysqlinnodb_log_file_size 参数的一些建议。

跟其他数据库管理系统一样,mysql通过日志来实现数据的持久性(在使用InnoDB存储引擎的前提下)。这确保了当一个事务提交后,其相关数据在崩溃或者服务器掉电的情况下不会丢失。

Mysql的InnoDB 存储引擎使用一个指定大小的Redo log空间(一个环形的数据结构)。Redo log的空间通过innodb_log_file_sizeinnodb_log_files_in_group(默认2)参数来调节。将这俩参数相乘即可得到总的可用Redo log 空间。尽管技术上并不关心你是通过innodb_log_file_size还是innodb_log_files_in_group来调整Redo log空间,不过多数情况下还是通过innodb_log_file_size 来调节。

为InnoDB引擎设置合适的Redo log空间对于写敏感的工作负载来说是非常重要的。然而,这项工作是要做出权衡的。你配置的Redo空间越大,InnoDB就能更好的优化写操作;然而,增大Redo空间也意味着更长的恢复时间当出现崩溃或掉电等意外时。

关于恢复时间,并不好预测对于一个指定的 innodb_log_file_size 值出现崩溃是需要多长的恢复时间--他取决于硬件能力、MySQL版本以及工作负载等因素。然而,一般情况下我们可以按照每1GB的Redo log的恢复时间大约在5分钟左右来估算。如果恢复时间对于你的使用环境来说很重要,我建议你做一些模拟测试,在正常工作负载下(预热完毕后)模拟系统崩溃,来评估更准确的恢复时间。

虽然恢复时间可以作为一个限制innodb_log_file_size的参考因素,也还有一些别的方式可以观察该参数设置是否“合理”(尤其是如果你安装了PMM: Percona Monitoring and Management)

检查Percona Monitoring and Management的“MySQL InnoDB Metrics”仪表盘,如果你看到如下的图像:
如何设置innodb_log_file_size
图中 Uncheckpointed Bytes 已经非常接近 Max Checkpoint Age,那么你几乎可以确定当前的 innodb_log_file_size 值因为太小已经某种程度上限制了系统性能。增加该值可以较为显著的提升系统性能。

而如果你看到的类似下图:
如何设置innodb_log_file_size
该图中 Uncheckpointed Bytes 远小于 Max Checkpoint Age,这种情况下再增加 innodb_log_file_size 就不会有明显性能提升。

注意:很多MySQL设置都是相互关联的,虽然一个特定的Redo log 空间对于一个较小的InnoDB Buffer Pool值来说可能已经足够,但是较大的InnoDB Buffer Pool值还是期望更大的Redo log 空间以达到更好的表现。

另一件需要记住的事:我们之前说的恢复时间,取决于 Uncheckpointed Bytes 而不是总的Redo log空间。如果你在增加了innodb_log_file_size之后并未观察到恢复时间的增加,那可能就是之前的配置在你当前的工作负载下已经够用,你增加的空间并未被完全利用。

另一个观察innodb_log_file_size的途径是 Redo log空间的使用情况:
如何设置innodb_log_file_size
这张图片展示了每小时写入日志文件的总数据量和innodb_log_file_size的值。上图中,我们有2G的Redo log空间但是每小时却有12G多的数据被写入日志文件。这意味着Redo空间差不多每十分钟就轮转一次。

而InnoDB 在每次Redo log空间轮转时都要将innodb buffer pool中的每个脏页都刷新到磁盘上。当这个操作出现越少时InnoDB越能得到更好的表现(对SSD硬盘的磨损也越少)。我希望看到这个操作的频率能达到至少15分钟一次,当然越少越好。

关于Redo 空间的使用情况,如果没有安装PMM的话,也可以通过下面的命令来观察每小时的写入量(MB):

a=$(mysql -uuser -p'passwd' -e "show engine innodb status\G" | grep "Log sequence number" | awk '{print $4}'); sleep 60; b=$(mysql -uuser -p'passwd' -e "show engine innodb status\G" | grep "Log sequence number" | awk '{print $4}'); let "res=($b-$a)*60/1024/1024";echo $res

总结
设置合适的innodb_log_file_file_size对于平衡性能和恢复时间来说非常重要。但是记住,你的场景下的恢复时间由于受所方面因素影响,并不能完全准确的预估出来。我希望本文中讨论的几点能帮助你设置更合理的innodb_log_file_file_size。

您可能感兴趣的文档:

--结束END--

本文标题: 如何设置innodb_log_file_size

本文链接: https://lsjlt.com/news/36793.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何设置innodb_log_file_size
    在这片文章中,我会提供一些关于如何设置 MySQL的 innodb_log_file_size 参数的一些建议。 跟其他数据库管理系统一样,MySQL通过日志来实现数据的持久性(在使用InnoDB存储引擎的...
    99+
    2024-04-02
  • MySQL中innodb_log_file_size如何设置
    这篇文章主要介绍了MySQL中innodb_log_file_size如何设置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2024-04-02
  • beacon如何设置
    这篇文章主要介绍了beacon如何设置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。beacon帧的值大小需要考虑无线环境,设备性能及区域内信号强度或干扰等因素;一般默认10...
    99+
    2023-06-20
  • 如何设置php.ini
    这篇文章主要讲解了“如何设置php.ini”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何设置php.ini”吧!设置php.ini的方法:1、将下载好的php安装包解压;2、找到php....
    99+
    2023-06-21
  • 如何设置innodb_buffer_pool_size
    innodb_buffer_pool_size 是MySQL InnoDB存储引擎的一个重要参数,它决定了InnoDB存储引擎可以使用的内存缓存池的大小。合理的设置 innodb_buffer_pool_size 可以提高MySQL数据库的...
    99+
    2023-08-31
    mysql 数据库 linux 运维 java
  • win1075hz如何设置
    本篇内容介绍了“win1075hz如何设置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!win1075hz调节方法:右击桌面空白处,点击“显...
    99+
    2023-07-01
  • ipv6如何设置
    这篇文章主要介绍“ipv6如何设置”,在日常操作中,相信很多人在ipv6如何设置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ipv6如何设置”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!首先,通过路由器...
    99+
    2023-07-02
  • redis如何设置存储时间设置
    在Redis中,可以使用EXPIRE命令来设置键的过期时间。该命令接受两个参数,第一个参数为键名,第二个参数为过期时间,单位为秒。例...
    99+
    2023-09-11
    redis
  • jQuery如何设置全局动画设置?
    这篇文章将为大家详细讲解有关jQuery如何设置全局动画设置?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 jQuery 提供了 $.fx.speeds 对象,用于设置全局动画设置。该对象包含以下属性...
    99+
    2024-04-02
  • PHP如何设置区域设置信息
    这篇文章将为大家详细讲解有关PHP如何设置区域设置信息,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 设置 PHP 区域设置 区域设置是 PHP 中一个重要的概念,它定义了应用程序如何处理日期、时间、数...
    99+
    2024-04-02
  • javascript如何设置radio
    这篇文章给大家分享的是有关javascript如何设置radio的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 javascript设置radio的方...
    99+
    2024-04-02
  • layer如何设置maxWidth
    这篇文章主要为大家展示了“layer如何设置maxWidth”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“layer如何设置maxWidth”这篇文章吧。lay...
    99+
    2024-04-02
  • js如何设置cookie
    小编给大家分享一下js如何设置cookie,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!js设置cookiegetCookie:...
    99+
    2024-04-02
  • phpstudy如何设置https
    在phpstudy中设置https的方法首先,在计算机中打开phpstudy,进入phpstudy操作端;进入到phpstudy操作端后,在页面中点击“网站”选项;在弹出的网站列表中,选择需要设置https的网站,点击管理,并在下拉中选择“...
    99+
    2024-04-02
  • ie如何设置javascript
    这篇文章将为大家详细讲解有关ie如何设置javascript,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JavaScript可以做什么1.可以使网页具有交互性,例如响应用户点击,给用户提供更好的体验。2...
    99+
    2023-06-14
  • chrome如何设置javascript
    这篇文章给大家分享的是有关chrome如何设置javascript的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。chrome设置javascript的方法:首先打开Google Chrome;然后点击右上角选择设...
    99+
    2023-06-14
  • javascript如何设置css
    这篇文章给大家分享的是有关javascript如何设置css的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JavaScript是什么JavaScript是一种直译式的脚本语言,其解释器被称为JavaScript引...
    99+
    2023-06-14
  • html如何设置hr
    这篇文章将为大家详细讲解有关html如何设置hr,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。html设置hr的方法:首先创建一个HTML示例文件;然后在body中输入一些文本内容;最后在需要分隔的段落之...
    99+
    2023-06-14
  • javascript如何设置cookie
    这篇文章给大家分享的是有关javascript如何设置cookie的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在javascript中,可以使用document对象的cookie属性来设置、读取或删除cooki...
    99+
    2023-06-14
  • javascript如何设置width
    这篇文章主要介绍“javascript如何设置width”,在日常操作中,相信很多人在javascript如何设置width问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”javascript如何设置width...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作