zoukankan      html  css  js  c++  java
  • MySQL几个和innodb相关的参数

    有同事问了几个MySQL参数设置,这里简单记录一下:

    innodb_thread_concurrency ,用于限制能够进入innodb层的线程数

    当进入innodb层调用read_row/write_row/update_row/delete_row时,会检查已经进入innodb的线程数:innodb_srv_conc_enter_innodb

    如果已经满了,就会等待innodb_thread_sleep_delay毫秒尝试一次

    如果再次失败,则进入到一个FIFO队列sleep

    当在innodb层完成操作后,会调用innodb_srv_conc_exit_innodb退出innodb层

    当线程进入时,获得一段时间片innodb_concurrency_tickets,在时间片范围内,该线程就无需检测,直接进入innodb

    理论上讲,我们可以把innodb_thread_concurrency设置为(cpu数+磁盘数)*2,但这需要取决于具体的应用场景

    innodb_commit_concurrency ,用于限制在innodb层commit阶段的线程数,大多数情况下,默认值已经足够。

    --------------------------

    innodb_write_io_threads

    用于写脏页的线程数

    innodb_read_io_threads

    用于从磁盘读文件块的线程数

    thread_cache_size

    线程在使用完成后,不是退出,而是存放到list中,这样减小了重复创建线程的开销,

    这个值的设置应跟内存相关的:mem = (thread_cache_size) * (thread_stack)

    max_connections

    MySQL层最大允许的连接请求数,注意如果设置的过大,可能会引起很大的额外开销:线程切换开销。目前比较流行的优化方案是使用线程池 来保存请求队列,建立有限的work线程来处理连接,换句话说,就算max_connections设置的再大,那也要受innodb_thread_concurrency的 限制。

    版权声明:QQ:597507041

  • 相关阅读:
    前端程序员应该知道的 15 个 jQuery 小技巧
    UML 序列图详解
    UML实践详细经典教程----用例图、顺序图、状态图、类图、包图、协作图
    浅谈UML的概念和模型之UML九种图
    [TFS教程]TFS: Get Command
    cmd下PUSHD和POPD命令使用说明
    IIS 7.0的集成模式和经典模式
    sql日期格式化
    VS2010自定义添加创建者、创建时间等个人信息新建文件模版
    瞎打一波
  • 原文地址:https://www.cnblogs.com/spzhangfei/p/4801781.html
Copyright © 2011-2022 走看看