4

我正在对包含超过 500 万行的表运行查询,该查询大约需要 30 分钟才能运行。由于显而易见的原因,这是不可接受的,我已经重写了查询以在 10 秒内执行。但我的根本问题是查询只使用了大约 12.5% 的 cpu,而且似乎没有使用服务器的全部资源。服务器有 8 个内核,并且在运行查询 100%/8 个内核 = 每个内核 12.5% CPU 时似乎只使用 1 个。如果重要,数据库使用 MyISAM 引擎。

我知道在大多数情况下,您不希望您的服务器因 1 个查询而陷入困境,但在这种情况下,这是可以接受的(查询在现实世界无法访问的测试服务器上运行,因此流量和其他正在运行的服务是没问题)。

长话短说,是否可以让单个查询访问超过 1 个 CPU,或者由于 MySQL 架构,是否不可能线程(在 CPU 级别)单个查询?我猜还有第三种选择,查询仅使用 12.5 cpu 而 MySQL 可以在每个查询中使用多个内核只是巧合。

4

1 回答 1

4

“目前一条SQL语句在同一个物理线程中从头到尾运行。”

http://lists.mysql.com/internals/37329

于 2012-11-09T13:30:55.967 回答