读书频道 > 网站 > 网页设计 > MySQL管理之道:性能调优、高可用与监控
1.1.10 提高默认InnoDB线程并发数
14-02-20    奋斗的小年轻
收藏    我要投稿   
本书由资深MySQL专家撰写,以最新的MySQL版本为基础,以构建高性能MySQL服务器为核心,从故障诊断、表设计、SQL优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、MySQL高可用集群搭建与管理、MySQL服立即去当当网订购

InnoDB使用操作系统线程来处理用户事务请求,它是这样工作的:当InnoDB收到一个用户的请求时,如果已经超过innodb_thread_concurrency预先设置的并发线程数量,那么就会按照innodb_thread_sleep_delay预先设定的值休眠N秒,之后再次尝试连接,重试两次的机制是为了减少CPU上下文切换的次数,以降低CPU消耗。如果请求被接受了,则会获得一个innodb_concurrency_tickets默认500次的通行证,在这些次数用完之前,该线程重新请求时无须再进行前面所说的innodb_thread_concurrency的检查。如果还没有被接受,那么就会进入队列中,直到最终被处理掉。

从MySQL5.5.X版本开始,innodb_thread_concurrency被默认设置为0,表示不限制并发数,表1-2中是该参数的历史默认值。

表1-2 innodb_thread_concurrency参数默认值
InnoDB Version MySQL Version Default value Default limit of concurrent threads Value to allow unlimited threads
InnoDB Version MySQL Version Default value Default limit of concurrent threads Value to allow unlimited threads
Built-in Earlier than 5.1.11 20 No limit 20 or higher
Built-in 5.1.11 and newer 8 8 0
InnoDB storage engine before 1.0.3 (corresponding to Plugin) 8 8 0
InnoDB storage engine 1.0.3 and newer (corresponding to Plugin) 0 No limit 0

注意

innodb_thread_concurrency = 0时,innodb_thread_sleep_delay参数就无效了。同样innodb_concurrency_tickets也没了意义,这里推荐设置innodb_thread_concurrency为0,这样可以更好地发挥CPU多核处理能力,提高并发量。

关于innodb_thread_concurrency参数的介绍,请参见MySQL5.5手册:

 

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站