【发布时间】:2017-03-01 10:16:09
【问题描述】:
我有安装最新 MySQL 5.7 的高端 48 CPU 核心服务器
我有点惊讶,当使用 GROUP BY 执行查询时,无论我如何格式化我的查询,我只得到 1 个 CPU 核心用于该查询,htop 输出清楚地说明了这一点
当然,我可以同时执行多个查询,这就是我可以使用所有内核的方式,但似乎不太方便,并且不是每个查询都可以拆分以使用完整服务器的功能
是否有任何 MySQL 扩展或 SQL 提示允许在使用 GROUP BY 处理数据时使用多个内核?
【问题讨论】:
-
您使用的是哪个引擎?据我所知,只有 innoDB 完全支持多核 cpu
-
MySQL(目前)不支持一个查询多核。
-
@Christian Felix:我使用 InnoDB 引擎
-
@Solarflare 您能否提供一些指向您在其中找到此信息的文档的链接?
-
@Matthias 如果您事先知道,可以在How MySQL Uses Threads for Client Connections 找到它。每个连接一个线程,因此每个查询一个线程(除了磁盘访问)。它没有明确说它不会为查询创建额外的线程,但如果它支持这一点,它可能应该这样做,所以唯一的其他迹象是该信息不存在。但更难证明文档中没有(任何地方)的东西。
标签: mysql multithreading performance group-by