是否可以使MYSQL单线程使用多核



我正在寻找使mysql单线程使用多核的解决方案

因此,基本上一个重sql查询将使用多个核心来更快地检索数据,这可能吗?

或者在PostgreSQL、Oracle中有这样的替代方案吗?

MySQL。。。

  • 一般情况下,一个连接最多使用一个核心
  • 有一些"后台"线程有限地使用了额外的内核。(例如:保持后台I/O任务的移动。(
  • 在MySQL 8.0中,极少数特殊情况下会使用多核。https://www.percona.com/blog/2019/01/23/mysql-8-0-14-a-road-to-parallel-query-execution-is-wide-open/
  • 如果您的表没有完全缓存,那么如果它已经被I/O绑定,那么使用多个核心将是徒劳的
  • A.1.7的引用具有误导性——它只是说多个连接可以利用多个核心";做正确的事;当他们试图修改同一行时
  • 我申请了https://bugs.mysql.com/bug.php?id=100892希望能让他们修正条目的误导性

在MySQL中,您有它(检查MySQL答案A1.7(:

[…]MySQL是完全多线程的,并且将使用多个CPU,前提是操作系统支持它们。

在PostgreSQL中,这是可能的(查看他们的官方常见问题解答(:

[…]自版本9.6以来,一些查询的部分可以在单独的操作系统进程中并行运行,从而允许使用多个CPU内核。默认情况下,并行查询在版本10(max_paralle_workers_per_gater(中启用,预计在未来的版本中还会有额外的并行性。

对于其他数据库,我不希望不会,但快速谷歌搜索可以帮助您。

最新更新