MySQL线程池的引入可以提高我们的MySQL的性能

  支持线程池的版本:MySQL 企业版本,MySQL percona的分支 MariDB 的版本。我们知道我们的MySQL 语句是不支持硬解析的,没有无SQL 解析 cache。每个连接对应一个线程,我们的每一个SQL 只能使用到一个内核。索引为了避免CPU的上下文的切换,我们引入了线程池的概念。

通常我们知道,我们的一个sql只能使用到一个内核,

MySQL 5.6以上的版本支持的CPU 支持64个核,其他版本的支持核数大概 如下

5.1 之前对多核心支持比较弱
5.1 可以利用4个核
5.5 可以使用到24核

线程池:

mysql的版本是不支持线程池的,但是企业版本和mysql的其它分之版本是支持线程池的。

线程池的作用:主要是较少客户连接和语句执行线程的开销,较少了cpu的上下文的切换。适合高并发的php 短连接的应用的场景。注意这个只适合于短连接不是长连接。

官方社区版本和线程池的版本的读写扩展性相差60倍左右。


线程池的参数设置

thread_handling=pool-of-threads.
thread_pool_max_threads=500 如果是促销的活动可以把这个值设置在1000左右,同时注意ulimit文件描述符65535.再重启mysql即可其他的参数不用设置。

posted @ 2017-03-29 11:13  dudochen  阅读(365)  评论(0编辑  收藏  举报