zoukankan      html  css  js  c++  java
  • 14.6.6 Configuring Thread Concurrency for InnoDB 配置线程并发

    14.6.6 Configuring Thread Concurrency for InnoDB  配置线程并发
    
    
    InnoDB 使用操作系统线程来处理请求(用户事务) 事务可能执行很多次在它们提交或者回滚前。
    
    在现在的操作系统,具有多核CPU 上下文切换是有效的, 很多的负载运行很好没有任何并发线程数量的限制
    
    
    在这种情况下 它是用助于最小化上下文切换在线程之间,
    
    InnoDB 使用一些技术来限制并发执行操作系统线程的数量(也就是说请求的数量任何一个时间的处理数量)
    
    
    当InnoDB 从用户会话接收一个新的请求,如果 并发线程的数量是在一个预定义的限制,
    
    新的请求会sleep一段时间在他再次尝试前。
    
    
    
    你可以设置并发线程的数量 通过设置r innodb_thread_concurrency参数
    
    
    mysql> show variables like '%innodb_thread_concurrency%';
    +---------------------------+-------+
    | Variable_name             | Value |
    +---------------------------+-------+
    | innodb_thread_concurrency | 0     |
    +---------------------------+-------+
    1 row in set (0.00 sec)
    
    
    一旦并发线程的数量达到这个值, 额外的线程sleep 会等待数微妙
    
    mysql> show variables like '%innodb_thread_sleep_delay%';
    +---------------------------+-------+
    | Variable_name             | Value |
    +---------------------------+-------+
    | innodb_thread_sleep_delay | 10000 |
    +---------------------------+-------+
    1 row in set (0.00 sec)
    此前,它需要实验来找出最有的值对于innodb_thread_sleep_delay, 最有的值
    
    可以改变取决于负载。
    
    在MySQL 5.6.3 and higher, 你可以设置配置选项 innodb_adaptive_max_sleep_delay为高的值
    
    
    InnoDB 自动调整innodb_thread_sleep_delay up或者down 取决于当前线程的活动
    
    
    默认值对于innodb_thread_concurrency 和说明默认限制在并发线程数量上已经被改变了再各个版本
    
    
    innodb_thread_concurrency 默认值是0,这样没有没有限制
    
    
    InnoDB 导致线程sleep 只有当并发线程的数量被限制。
    
    当没有线程限制时,所有的竞争都会被调度。
    
    也就是说,如果 innodb_thread_concurrency设置为0, innodb_thread_sleep_delay 会被忽略
    
    
    当有一个线程数限制时(当innodb_thread_concurrency is > 0),
    
    InnoDB 减少上下文切换通过运行多个请求在一个SQL语句执行到InnoDB 没有观察限制通过innodb_thread_concurrency. 
    

  • 相关阅读:
    8天学通MongoDB——第一天 基础入门
    Struts2属性驱动与模型驱动
    前端传递参数,由于控制器层类实现了struts2的ModelDriven而产生的一个异常
    struts2之ModelDriven的用法
    JavaScript Array reverse 方法:颠倒数组中元素的顺序
    ibatis传入list对象
    ibatis中使用List作为传入参数的使用方法及 CDATA使用
    javascript 正则表达式判断只能是中文、英文或者中文加英文
    zclip结合easyui实现复制datagrid每行特定单元格数据的功能
    【Nodejs】使用put方式向后端查询数据并在页面显示
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350068.html
Copyright © 2011-2022 走看看