不同的MySQL连接是否存在于不同的线程中?

时间:2017-03-30 17:59:14

标签: php mysql apache

我有一个webapp,它托管在运行连接到MySQL数据库的php脚本的apache服务器上。

我知道apache会在收到请求时创建线程和进程来运行不同的脚本,但是当多个用户尝试运行调用存储过程的脚本时,我遇到了问题:服务器的一个核心开始运行在另一个人只有0%的情况下运行率为90%,而当一个人同时使用它时,这个过程特别缓慢。

有没有办法充分发挥处理器的潜力?

1 个答案:

答案 0 :(得分:3)

每个MySQL连接在mysqld进程中启动自己的线程。但是一个MySQL连接被固定到一个线程。 MySQL不支持为单个连接使用多个内核。

Mysqld还始终运行许多其他帮助程序线程。连接管理器线程,复制线程,死锁检测线程,用于读写的各种InnoDB线程等

有关详细信息,请阅读:

如果您的服务器具有空闲内核,那么可能没有足够的并发工作来安排多个内核上的线程。