Welcome 微信登录

首页 / 数据库 / MySQL / 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_connectionsMySQL层最大允许的连接请求数,注意如果设置的过大,可能会引起很大的额外开销:线程切换开销。目前比较流行的优化方案是使用线程池 来保存请求队列,建立有限的work线程来处理连接,换句话说,就算max_connections设置的再大,那也要受innodb_thread_concurrency的 限制。禁止死锁检测来提升高并发MySQL性能VMware 中Linux AS4 安装Oracle 10g记录相关资讯      MySQL基础教程 
  • MySQL基础教程:关于varchar(N)  (01月22日)
  • MySQL SELECT同时UPDATE同一张表  (02/19/2013 07:20:18)
  • Linux修改MySQL最大并发连接数  (02/15/2013 15:37:21)
  • 高性能MySQL(第3版) 中文PDF带目  (10/26/2014 10:03:50)
  • 如何在MySQL中的获取IP地址的网段  (02/18/2013 12:23:33)
  • C++和C#访问MySQL的简单代码示例  (12/21/2012 09:04:10)
本文评论 查看全部评论 (0)
表情: 姓名: 字数