一、innodb并行任务调度是什么:

  这里要“考古”一下了,不然问题说不清楚。上大学的时候老师和我们说最初的计算机只有一个核心,并且一次也只能做一件事,

  如果你有两件事要用到计算机,在第一件事没有做完之前,后面那件事只能等着。后来呀,计算机就进化了一把,计算机不再

  是把一件是做完之后,再去做第二件事,而是一件事只做一段非常短的时间,并不关心这件事有没有做完,它就会去做第二件

  事,同样第二件事也只做一段非常短的时间,就回过头去做第一件事;

  虽然事实上两件事是交错着做的,由于第一件事都只做一段非常短的时间,所以整体上看起来,两件事是同时都有取得进展的

  上面所用到的一个词“一段非常短的时间”,用专业点的话来说就是“时间片”,也就是说每一个任务(事)只会在计算机(cpu)上执

  一个时间片这么久,就要被中断,把计算能力让给别的任务,上面的例子为了方便说明我们只是举了两个任务,事实上多个任务

  也就这样的,一个任务执行一段时间,就执行下一个任务。

  计算机的进化还没有终结,后来的cpu不只是才一个核心,而是有了多个核心,这样计算机就可以有更高的并行度了,任务的调

  度算法还是根据时间片那一套来的,这个也从侧面这种算法也是当前比较好靠谱的了。

  innodb 任务的调度和上面所说的cpu的任务调度在设计思想上是一样的,innodb会把任务放心一个任务队列中,每次会有m个

  任务有时间片,也就是说每次会有m个任务同时在做;

二、innodb 这种调度方式会有什么问题

  由上面所说的innodb每次会有m个任务在执行,如果这个m太大,那么cpu上下文切换就会频繁,这样的话高并行度反而会影响

  mysql 性能。

三、控制innodb并行度与任务调试的相关参数:

  1、innodb_thread_concurrency  控制着innodb一次并行执行多少任务,也就是多每次最多,多少个任务可以拿到时间片

  这个值也就是上文中所提到的m,如果这个值是0表示意思和m=无穷大是一样的。

  2、innodb_concurrency_tickets  这个参数定义着每一个任务时间片的长度。

  3、innodb_thread_sleep_delay   这个参数说的是当innodb已经同时有innodb_thread_concurrency个任务在执行了,新

  的任务来临时,这个新的任务要等innodb_thread_sleep_delay 这么久才能进行innodb的调度队列。

  4、innodb_adaptive_max_sleep_delay  确实上面的这些参数大多是用来吹水的,管理员通常不会知道对于一个给定的库

  上面这三个参数各个多大才最合理,一方便源于业务的周期性波动,可能白天的时候任务重,晚上的时候没人用,没有那一个

  值能适用这么宽的范围。而innodb_adaptive_max_sleep_delay它用于设定管理员容忍极限,例如把innodb_adaptive_max_sleep_delay

  设定成150000就是说,任何一个任务在150000微秒后一定要被加入到innodb调度队列。

----

交通学习&打赏

mysql-5.7 innodb 的并行任务调度详解的更多相关文章

  1. MYSQL服务器my.cnf配置文档详解

    MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...

  2. mysql服务性能优化—my.cnf配置说明详解

    MYSQL服务器my.cnf配置文档详解硬件:内存16G [client]port = 3306socket = /data/3306/mysql.sock [mysql]no-auto-rehash ...

  3. Mysql高手系列 - 第9篇:详解分组查询,mysql分组有大坑!

    这是Mysql系列第9篇. 环境:mysql5.7.25,cmd命令中进行演示. 本篇内容 分组查询语法 聚合函数 单字段分组 多字段分组 分组前筛选数据 分组后筛选数据 where和having的区 ...

  4. MySQL 8.0.20 安装教程图文详解(windows 64位)

    MySQL 8.0.20 安装教程图文详解(windows 64位)  更新时间:2020年05月09日 15:09:04   转载 作者:瘦肉粥不加糖     这篇文章主要介绍了MySQL 8.0. ...

  5. ambari-server启动出现ERROR main] DBAccessorImpl:106 - Error while creating database accessor java.lang.ClassNotFoundException:com.mysql.jdbc.Driver问题解决办法(图文详解)

    不多说,直接上干货! 问题详情 ambari-server启动时,报如下的错误 问题分析 注:启动ambari访问前,请确保mysql驱动已经放置在/usr/share/Java内且名字是mysql- ...

  6. 转:InnoDB Log Block Structure(InnoDB日志Block结构详解)

    文章转载自等博 InnoDB Log Block Structure(InnoDB日志Block结构详解)

  7. MySQL慢查询(二) - pt-query-digest详解慢查询日志 pt-query-digest 慢日志分析

    随笔 - 66 文章 - 0 评论 - 19 MySQL慢查询(二) - pt-query-digest详解慢查询日志 一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它 ...

  8. Mysql高手系列 - 第8篇:详解排序和分页(order by & limit),及存在的坑

    这是Mysql系列第8篇. 环境:mysql5.7.25,cmd命令中进行演示. 代码中被[]包含的表示可选,|符号分开的表示可选其一. 本章内容 详解排序查询 详解limit limit存在的坑 分 ...

  9. Mysql高手系列 - 第14篇:详解事务

    这是Mysql系列第14篇. 环境:mysql5.7.25,cmd命令中进行演示. 开发过程中,会经常用到数据库事务,所以本章非常重要. 本篇内容 什么是事务,它有什么用? 事务的几个特性 事务常见操 ...

随机推荐

  1. 浅谈Java两种并发类型——计算密集型与IO密集型

    转载:https://blog.csdn.net/u013070853/article/details/49304099 核心是可以分别独立运行程序指令的计算单元.线程是操作系统能够进行运算调度的最小 ...

  2. jQuery CircleCounter的环形倒计时效果

    在线演示1 本地下载 使用jQuery插件CircleCounter生成的环形倒计时效果,这个插件使用HTML5画布生成动画效果,还不错,大家可以试试! 顺带手录制了个代码,大家不吝赐教:http:/ ...

  3. 矩阵经典题目四:送给圣诞夜的礼品(使用m个置换实现对序列的转变)

    https://vijos.org/p/1049 给出一个序列,含n个数.然后是m个置换,求对初始序列依次进行k次置换,求最后的序列. 先看一个置换.把置换表示成矩阵的形式.然后将m个置换乘起来.那么 ...

  4. [android错误] Installation error: INSTALL_FAILED_VERSION_DOWNGRA

    错误表现: [2014-06-27 18:19:51 - XXX] Installing XXXX.apk... [2014-06-27 18:20:00 - XXX] Installation er ...

  5. Linux安装 微信开发者工具(deepin linux ubt)

    一.环境:: deepin linux15.4.1 二.安装过程: 2.1 安装wine sudo apt-get install wine 2.2 安装nwjs-sdk 2.2.1 下载linux版 ...

  6. tomcat 热部署、热加载 精析

        1.前言 找了很多篇文章,没有一篇文章讲的清晰.明了,很多人只是会用,但不是能真正说明白,这年头找个懂理论的,真难! 2.热部署 原定义:tomcat处于运行状态时,能够监测webapps下的 ...

  7. EXCEPTION-javaBean

      CreateTime--2016年11月24日14:29:43Author:Marydon 声明:异常类文章主要是记录了我遇到的异常信息及解决方案,解决方案大部分都是百度解决的,(这里只是针对我遇 ...

  8. HTTP协议详解之基本认证篇

    •什么是HTTP基本认证: 桌面应用程序也通过HTTP协议跟web服务器交互,桌面应用程序一般不会使用cookie,而是把‘用户名+:+密码’用base64编码之后的string放在request中的 ...

  9. PHP扩展的基本结构

    1.下载php源码 git clone https://github.com/php/php-src.git  2,创建扩展 cd php-src/ext/ ./ext_skel --extname= ...

  10. 工具-VIM配置

    设置缩进的空格数 shiftwidth=4 设置制表符宽度 tabstop=4 高亮显示当前行 cursorline 高亮显示当前列 cursorcolumn