innodb参数汇总

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: InnoDB的主线程的代码,在每秒执行的任务中:存在固定的只刷新100个脏页到磁盘、合并20个插入缓冲。

InnoDB的主线程的代码,在每秒执行的任务中:存在固定的只刷新100个脏页到磁盘、合并20个插入缓冲。在写密集的App中,每秒中可以能产生大于100个的脏页,或是产生大于20个插入缓冲,此时的master thread似乎会忙不过来,或者说它总是做得很慢。即使磁盘能在1秒内处理多于100个页的写入和20个插入缓冲的合并,由于hard coding(硬编码)master thread也只会选择刷新100个脏页和合并20个插入缓冲。同时,当发生宕机需要恢复时,由于很多数据还没有刷新回磁盘,所以可能会导致恢复需要很快的时间,尤其是对于insert buffer。

解决办法

InnoDB Plugin提供了一个参数,用来表示磁盘IO的吞吐量,参数为 innodb_io_capacity,默认值为200。对于刷新到磁盘的数量,会按照 innodb_io_capacity的百分比来刷新相对数量的页。规则如下:

  * 在合并插入缓冲时,合并插入缓冲的数量为 innodb_io_capacity 数值的5%。

  * 在从缓冲区刷新脏页时,刷新脏页的数量为 innodb_io_capacity。

如果你使用了SSD类的磁盘,或者将几块磁盘做了RAID,当你的存储拥有更高的IO速度时,完全可以将 innodb_io_capacity 的值调得再高点,知道符合你的磁盘IO的吞吐量为止。



innodb_max_dirty_pages_pct 默认值

    由90%变为了75%。加快了脏页刷新频率减少恢复时间,也可保证磁盘IO负载。

innodb_adaptive_flushing(自 适应刷新)
    影响每秒刷新脏页的数目。规则由原来的“大于innodb_max_dirty_pages_pct时刷新100个脏页到磁盘”变为 “通过buf_flush_get_desired_flush_reate函数判断重做日志产生速度确定需要刷新脏页的最合适数目”;即使脏页比例小于 innodb_max_dirty_pages_pct时也会刷新一定量的脏页。

innodb_fast_shutdown

innodb_fast_shutdown影响着innodb表的行为,该参数可设置为0,1,2
 0 表示当MySQL关闭时,InnoDB需要完成所有的full purge和merge insert buffer操作。耗时比较长。
1 是默认值。表示不需要完成full purge和merge insert buffer操作,但是在缓冲池中的一些数据脏页会刷新到磁盘。
2 表示不完成full purge和merge insert buffer操作,也不将缓冲池中的数据脏页写回到磁盘,而是将日志写入到日志文   件。MySQL下次启动时,会执行恢复操作。

innodb_force_recovery
    影 响InnoDB的恢复状况。默认为0,表示需恢复时执行所有的恢复操作。若不能有效恢复,则MySQL有可能宕机,错误信息会被写入错误日志文件。还有 1~6等值

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
存储 缓存 关系型数据库
MySQL底层概述—5.InnoDB参数优化
本文介绍了MySQL数据库中与内存、日志和IO线程相关的参数优化,旨在提升数据库性能。主要内容包括: 1. 内存相关参数优化:缓冲池内存大小配置、配置多个Buffer Pool实例、Chunk大小配置、InnoDB缓存性能评估、Page管理相关参数、Change Buffer相关参数优化。 2. 日志相关参数优化:日志缓冲区配置、日志文件参数优化。 3. IO线程相关参数优化: 查询缓存参数、脏页刷盘参数、LRU链表参数、脏页刷盘相关参数。
MySQL底层概述—5.InnoDB参数优化
|
10月前
|
存储 监控 关系型数据库
MySQL 参数innodb_read_io_threads
`innodb_read_io_threads` 是 MySQL 数据库中 InnoDB 存储引擎的一个配置参数,它用于指定后台线程池中用于处理读取 I/O 请求的线程数量。InnoDB 存储引擎负责管理数据库的物理存储和检索,是 MySQL 最常用的存储引擎之一。 ### 参数说明 - **名称**: `innodb_read_io_threads` - **默认值**: 4 - **范围**: 1 到 64 - **动态修改**: 不能动态修改(需要重启服务器) - **适用版本**: MySQL 5.6 及以上版本 ### 作用 `innodb_read_io_threads`
795 1
|
7月前
|
缓存 关系型数据库 MySQL
整体方案 参数调优 innodb_buffer_pool_size
【8月更文挑战第14天】
73 0
|
10月前
|
存储 关系型数据库 MySQL
百度搜索:蓝易云【常用InnoDB参数介绍】
这些是一些常见的InnoDB参数,可以通过修改它们来优化MySQL数据库的性能和行为。当调整这些参数时,建议先备份数据库,并在测试环境中进行验证和性能测试,以确保最佳配置。
59 0
|
10月前
|
存储 SQL 缓存
MySQL `innodb_flush_log_at_trx_commit` 参数
MySQL `innodb_flush_log_at_trx_commit` 参数
|
存储 关系型数据库 MySQL
MySQL innodb_undo_tablespaces相关参数
在MySQL中,`innodb_undo_tablespaces` 是一个用于配置 InnoDB 回滚段表空间数量的参数。这个参数决定了InnoDB存储引擎在执行事务回滚时使用的回滚段表空间的数量。 下面是关于 `innodb_undo_tablespaces` 的一些相关信息: 1. **默认值:** 在MySQL 5.7和之前的版本中,默认值是1。在MySQL 8.0中,它的默认值被改为2。 2. **作用:** 该参数控制了 InnoDB 存储引擎用于存储回滚段数据的表空间的数量。回滚段用于存储事务未提交的数据,以便在需要回滚时进行恢复。 3. **影响性能:** 调整 `inn
354 0
|
缓存 关系型数据库 MySQL
提升mysql性能的关键参数之innodb_buffer_pool_size、innodb_buffer_pool_instances
提升mysql性能的关键参数之innodb_buffer_pool_size、innodb_buffer_pool_instances
1459 0
提升mysql性能的关键参数之innodb_buffer_pool_size、innodb_buffer_pool_instances
|
关系型数据库 MySQL 容器
MySQL 8 新参数innodb_dedicated_server的作用,多了64个日志文件ib_logfile
MySQL 8 中可以设置参数 innodb_dedicated_server=ON来让MySQL自动探测服务器的内存大小,根据内存大小设置innodb_buffer_pool_size, innodb_log_file_size 和 innodb_flush_method 三个参数。
286 0
|
关系型数据库 MySQL 数据库
MySQL innodb_large_prefix 参数
MySQL innoDB 表的索引长度限制
1799 0
|
监控 关系型数据库
MySQL8.0 - 新特性 - 说说InnoDB Log System的隐藏参数
InnoDB在设计lock-free的log system时,除了已有的参数外,还通过宏控制隐藏了一些参数,如果你使用源码编译时,打开cmake选项-DENABLE_EXPERIMENT_SYSVARS=1, 就可以看到这些参数了。
3044 0