MySQL服务器仅使用48个CPU核心中的1个和GROUP BY查询

Mat*_*ias 8 mysql performance multithreading group-by

我有安装了最新MySQL 5.7的高端48 CPU核心服务器

我有点惊讶的是,在使用GROUP BY执行查询时,无论我如何格式化我的查询,我只得到1个CPU核心用于该查询,htop输出清楚地说明

当然我可以同时执行多个查询,这就是我可以使用所有内核的方式,但它似乎不太方便,并不是每个查询都可以分割为使用完整服务器的功能

是否有任何MySQL扩展或SQL提示允许在使用GROUP BY处理数据时使用多个内核?

Sha*_*dow 9

正如RolandoMySQLDBA接受的答案可能使MySQL使用多个核心?问题说:

我实际上在2011年5月的Percona Live NYC会议上与MySQL专家讨论了innodb_thread_concurrency.

我学到了一些令人惊讶的东西:尽管有文档,但最好将innodb_thread_concurrency保留为0(无限并发).这样,InnoDB决定为给定的MySQL实例设置打开的最佳innodb_concurrecy_tickets数量.

将innodb_thread_concurrency设置为0后,您可以将innodb_read_io_threads和innodb_write_io_threads(自MySQL 5.1.38以来)设置为最大值64.这应该可以吸引更多内核.

这是我曾经发现的关于如何让MySQL 一般使用更多内核的最佳指导.

  • @ weefwefwqg3它不是一个动态变量,把它放到配置文件(my.cnf)或你的自定义(如果有的话) (4认同)