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即可其他的参数不用设置。