os: centos 7.4
db: mysql 8.0.19

innodb_io_capacity、innodb_io_capacity_max 控制的是 innodb 刷脏页的能力。

过小会导致 mysql 刷脏页能力不足,影响性能。
过大会让 mysql 认为 io 能力很强,会造成 io 尖峰。

版本

# cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
#
#
# yum list installed |grep -i mysql
mysql-community-client.x86_64              8.0.19-1.el7                @mysql80-community
mysql-community-common.x86_64              8.0.19-1.el7                @mysql80-community
mysql-community-devel.x86_64               8.0.19-1.el7                @mysql80-community
mysql-community-libs.x86_64                8.0.19-1.el7                @mysql80-community
mysql-community-libs-compat.x86_64         8.0.19-1.el7                @mysql80-community
mysql-community-server.x86_64              8.0.19-1.el7                @mysql80-community
mysql-community-test.x86_64                8.0.19-1.el7                @mysql80-community
mysql80-community-release.noarch           el7-3                       installed# mysqlmysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.19    |
+-----------+
1 row in set (0.00 sec)

创建基础表

mysql> use test;mysql> create table tmp_t0 (c0 bigint not null,c1 varchar(100) not null,c2 varchar(100) not null,primary key (c0)
)
engine=innodb
default charset=utf8mb4
collate=utf8mb4_bin;mysql> delimiter $$
create procedure insert_into_tmp_t0(in start_num int(10),in max_num   int(10)
)
begin  declare i int default 0;   set autocommit = 0;    repeat  set i = i + 1;  insert into tmp_t0 (c0,c1,c2) values (start_num+i,md5(start_num+i),md5(start_num+i));  until i = max_numend repeat;  commit;  end$$
delimiter ;mysql> call insert_into_tmp_t0(0,1000000);
mysql> create table tmp_t100 as select * from tmp_t0 where 1=2;mysql> alter table tmp_t100 add primary key (c0);mysql> create table tmp_t2000 as select * from tmp_t0 where 1=2;mysql> alter table tmp_t2000 add primary key (c0);

innodb_io_capacity 默认值

# mysqlmysql> show global variables like '%io_cap%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| innodb_io_capacity     | 200   |
| innodb_io_capacity_max | 2000  |
+------------------------+-------+
2 rows in set (0.00 sec)

innodb_io_capacity=100

mysql> set global innodb_io_capacity=100;
set global innodb_io_capacity_max=200;mysql> show global variables like '%io_cap%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| innodb_io_capacity     | 100   |
| innodb_io_capacity_max | 200   |
+------------------------+-------+
2 rows in set (0.00 sec)mysql> truncate table tmp_t100;mysql> insert into tmp_t100 select * from tmp_t0;
Query OK, 1000000 rows affected (18.76 sec)
Records: 1000000  Duplicates: 0  Warnings: 0

innodb_io_capacity=2000

mysql> set global innodb_io_capacity=2000;
set global innodb_io_capacity_max=4000;mysql> show global variables like '%io_cap%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| innodb_io_capacity     | 2000  |
| innodb_io_capacity_max | 4000  |
+------------------------+-------+
2 rows in set (0.00 sec)mysql> truncate table tmp_t2000;mysql> insert into tmp_t2000 select * from tmp_t0;Query OK, 1000000 rows affected (19.48 sec)
Records: 1000000  Duplicates: 0  Warnings: 0

参考:
https://dev.mysql.com/doc/refman/8.0/en/innodb-configuring-io-capacity.html
https://www.cnblogs.com/glon/p/6484912.html

innodb_io_capacity、innodb_io_capacity_max 的影响相关推荐

  1. wav文件头字节数和文件实际字节不一致_18道MySQL经典面试题及答案,8分钟看完,你会有不一样的收获...

    1.MySQL的复制原理以及流程 (1).复制基本原理流程 1. 主:binlog线程--记录下所有改变了数据库数据的语句,放进master上的binlog中: 2. 从:io线程--在使用start ...

  2. mysql 经典面试_这些MySQL经典面试题你要知道!

    1.MySQL的复制原理以及流程(1).复制基本原理流程 1. 主:binlog线程--记录下所有改变了数据库数据的语句,放进master上的binlog中: 2. 从:io线程--在使用start ...

  3. mysql5.6-5.7性能调优

    1.DEFAULT_STORAGE_ENGINE 如果你已经在用MySQL 5.6或者5.7,并且你的数据表都是InnoDB,那么表示你已经设置好了.如果没有,确保把你的表转换为InnoDB并且设置d ...

  4. 各大公司需要的面试题集

    文章目录 壹:java集合 1.1 常用集合的导图 1.2 Collection和Map 二:java并发 2.1 java多线程中名词的概念 2.2 java实现并发的方式 2.2.1 synchr ...

  5. Mysql 配置文件 my.cnf 参数详情参考

    Mysql 配置文件 my.cnf 参数详情参考 参考地址:https://blog.csdn.net/qq_42768234/article/details/110089078 其中有些参数有待查询 ...

  6. mysql wb bbu_全面优化MySQL

    MySQL性能瓶颈原因 硬件.系统因素 CPU 磁盘I/O 网络性能 操作系统争用 MySQL相关因素 数据库设计 索引.数据类型 应用程序性能 特定请求.短时事务 配置变量 缓冲区.高速缓存.Inn ...

  7. Mysql 面试实战系列(四)——快马扬鞭

    数聚天下 2017-05-20 08:34 走过路过不要错过,错过一个点也许就错过一两万,错过一次好的机会.如果您有什么好的建议或者问题,也请留言,大家共同商讨. 讲述下如何做sql优化 Øexpla ...

  8. MySQL45讲学习笔记(1)

    文章目录 SQL的执行 一条查询语句的执行过程 一条SQL更新语句是如何执行的? InnoDB特有的日志:Redo Log 重要日志模块: BinLog InnoDB更新语句的执行流程 两阶段提交 事 ...

  9. 提高mysql插入速度的方法

    导读 作者:杨漆 16年关系型数据库管理,从oracle 9i .10g.11g.12c到Mysql5.5.5.6.5.7.8.0 到TiDB获得3个OCP.2个OCM:运维路上不平坦,跌过不少坑.熬 ...

  10. MySQL(InnoDB剖析):53---性能调优之(CPU的选择、内存的重要性、磁盘对数据库性能的影响)

    一.CPU的选择 用户首先需要清楚当前数据库的应用类型.一般而言,可分为两大类:OLTP(Online Transaction Processing,在线事务处理)和OLAP(Online analy ...

最新文章

  1. 敲代码4年,发现C语言里几个有意思的问题
  2. BZOJ 2019 [Usaco2009 Nov]找工作:spfa【最长路】【判正环】
  3. Atitit sql之道 艾龙著 attilax 1. Ddl dml 3 2. Crud 3 3. 高级sql 3 3.1. Merge 3 3.2. 数据库翻页 limit offset系列
  4. java怎么设置颜色_java怎么设置颜色
  5. Redis秒杀实战:微信抢红包(附源码)
  6. 【线性代数】6-6:相似矩阵(Similar Matrices)
  7. 使用 Sun Jimi 进行图像格式转换
  8. React项目的打包与部署到腾讯云
  9. fatal: does not appear to a git repository
  10. 计算机传票算录入测试,传票算
  11. 可持久化线段树13(区间内只出现一次的数)
  12. tassel软件使用linux,Linux系统下TASSEL5.0的安装及使用
  13. Firebird FOR LINUX
  14. Uni-app 结算页 支付逻辑
  15. 变速齿轮加速百度网盘下载
  16. R语言潜类别混合效应模型(Latent Class Mixed Model ,LCMM)分析老年痴呆年龄数据
  17. creator打包替换图标跟游戏名称(详细步骤)
  18. 平板电脑安装鸿蒙OS,预装鸿蒙OS!华为MatePad Pro2入网:搭载麒麟9000
  19. QT5 QTabWidget 隐藏Tab 或 显示Tab 正确的解决方案
  20. 为什么Linux安全,基于它的安卓却被吐槽不安全

热门文章

  1. luogu P2184 贪婪大陆
  2. (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  3. Python自动化完成tb喵币任务
  4. GPT模型总结【模型结构及计算过程_详细说明】
  5. Gym - 101964E -Fishermen(二分+差分求前缀和)
  6. arp: 查看,为主机添加一个arp 表项
  7. 首先感谢IQueBrew小组
  8. todo已完成任务_总结一下TODO的用法
  9. 关于网页背景图怎样自动适应屏幕大小
  10. android学习笔记----多线程断点续传下载原理设计