innodb_io_capacity、innodb_io_capacity_max 的影响
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 的影响相关推荐
- wav文件头字节数和文件实际字节不一致_18道MySQL经典面试题及答案,8分钟看完,你会有不一样的收获...
1.MySQL的复制原理以及流程 (1).复制基本原理流程 1. 主:binlog线程--记录下所有改变了数据库数据的语句,放进master上的binlog中: 2. 从:io线程--在使用start ...
- mysql 经典面试_这些MySQL经典面试题你要知道!
1.MySQL的复制原理以及流程(1).复制基本原理流程 1. 主:binlog线程--记录下所有改变了数据库数据的语句,放进master上的binlog中: 2. 从:io线程--在使用start ...
- mysql5.6-5.7性能调优
1.DEFAULT_STORAGE_ENGINE 如果你已经在用MySQL 5.6或者5.7,并且你的数据表都是InnoDB,那么表示你已经设置好了.如果没有,确保把你的表转换为InnoDB并且设置d ...
- 各大公司需要的面试题集
文章目录 壹:java集合 1.1 常用集合的导图 1.2 Collection和Map 二:java并发 2.1 java多线程中名词的概念 2.2 java实现并发的方式 2.2.1 synchr ...
- Mysql 配置文件 my.cnf 参数详情参考
Mysql 配置文件 my.cnf 参数详情参考 参考地址:https://blog.csdn.net/qq_42768234/article/details/110089078 其中有些参数有待查询 ...
- mysql wb bbu_全面优化MySQL
MySQL性能瓶颈原因 硬件.系统因素 CPU 磁盘I/O 网络性能 操作系统争用 MySQL相关因素 数据库设计 索引.数据类型 应用程序性能 特定请求.短时事务 配置变量 缓冲区.高速缓存.Inn ...
- Mysql 面试实战系列(四)——快马扬鞭
数聚天下 2017-05-20 08:34 走过路过不要错过,错过一个点也许就错过一两万,错过一次好的机会.如果您有什么好的建议或者问题,也请留言,大家共同商讨. 讲述下如何做sql优化 Øexpla ...
- MySQL45讲学习笔记(1)
文章目录 SQL的执行 一条查询语句的执行过程 一条SQL更新语句是如何执行的? InnoDB特有的日志:Redo Log 重要日志模块: BinLog InnoDB更新语句的执行流程 两阶段提交 事 ...
- 提高mysql插入速度的方法
导读 作者:杨漆 16年关系型数据库管理,从oracle 9i .10g.11g.12c到Mysql5.5.5.6.5.7.8.0 到TiDB获得3个OCP.2个OCM:运维路上不平坦,跌过不少坑.熬 ...
- MySQL(InnoDB剖析):53---性能调优之(CPU的选择、内存的重要性、磁盘对数据库性能的影响)
一.CPU的选择 用户首先需要清楚当前数据库的应用类型.一般而言,可分为两大类:OLTP(Online Transaction Processing,在线事务处理)和OLAP(Online analy ...
最新文章
- 敲代码4年,发现C语言里几个有意思的问题
- BZOJ 2019 [Usaco2009 Nov]找工作:spfa【最长路】【判正环】
- Atitit sql之道 艾龙著 attilax 1. Ddl dml	3 2. Crud	3 3. 高级sql	3 3.1. Merge	3 3.2. 数据库翻页 limit offset系列
- java怎么设置颜色_java怎么设置颜色
- Redis秒杀实战:微信抢红包(附源码)
- 【线性代数】6-6:相似矩阵(Similar Matrices)
- 使用 Sun Jimi 进行图像格式转换
- React项目的打包与部署到腾讯云
- fatal: does not appear to a git repository
- 计算机传票算录入测试,传票算
- 可持久化线段树13(区间内只出现一次的数)
- tassel软件使用linux,Linux系统下TASSEL5.0的安装及使用
- Firebird FOR LINUX
- Uni-app 结算页 支付逻辑
- 变速齿轮加速百度网盘下载
- R语言潜类别混合效应模型(Latent Class Mixed Model ,LCMM)分析老年痴呆年龄数据
- creator打包替换图标跟游戏名称(详细步骤)
- 平板电脑安装鸿蒙OS,预装鸿蒙OS!华为MatePad Pro2入网:搭载麒麟9000
- QT5 QTabWidget 隐藏Tab 或 显示Tab 正确的解决方案
- 为什么Linux安全,基于它的安卓却被吐槽不安全