it-swarm.com.de

MySQL-Server verwendet nur einen von 48 CPU-Kernen mit GROUP BY-Abfragen

Ich habe einen High-End-48-CPU-Core-Server mit der neuesten Version von MySQL 5.7 installiert

Ich bin etwas überrascht, dass bei der Ausführung von Abfragen mit GROUP BY unabhängig von der Formatierung meiner Abfrage nur ein CPU-Kern für diese Abfrage verwendet wird, was durch die Ausgabe von htop klar veranschaulicht wird

Natürlich kann ich mehrere Abfragen gleichzeitig ausführen, und so kann ich alle Kerne verwenden, aber es scheint nicht zu bequem, und nicht jede Abfrage kann aufgeteilt werden, um die volle Serverleistung zu nutzen

Gibt es MySQL-Erweiterungen oder SQL-Hinweise, die die Verwendung mehrerer Kerne bei der Datenverarbeitung mit GROUP BY ermöglichen?

5
Matthias

Als akzeptierte Antwort von RolandoMySQLDBA auf Kann MySQL mehr als einen Kern verwenden? Frage sagt:

Ich habe innodb_thread_concurrency mit einem MySQL-Experten unter .__ diskutiert. Die Percona Live NYC Konferenz fand bereits im Mai 2011 statt.

Ich habe etwas Überraschendes gelernt: Trotz der Dokumentation ist es Am besten lassen Sie innodb_thread_concurrency bei 0 (unendliche Parallelität) . Auf diese Weise entscheidet InnoDB über die beste Anzahl von innodb_concurrecy_tickets für eine bestimmte MySQL-Instanz einrichten.

Nachdem Sie innodb_thread_concurrency auf 0 gesetzt haben, können Sie .__ einstellen. innodb_read_io_threads und innodb_write_io_threads (beide seit MySQL 5.1.38) auf den Maximalwert von 64. Dies sollte mehr Kerne betreffen.

Dies ist die beste Anleitung, die ich je gefunden habe, wie MySQL mehr Cores generell verwenden kann.

6
Shadow

Abgesehen von Hintergrundthreads verwendet eine Verbindung nur einen CPU-Kern. Dies gilt für GROUP BY, UNION, PARTITION` und alle anderen Optionen, die Sie für parallel halten könnten.

Die Aussage gilt für InnoDB mindestens über MySQL 8.0 und MariaDB 10.2.

Eine Drittanbieter-Software kann mehrere Kerne verwenden: https://www.percona.com/blog/2014/05/01/parallel-query-mysql-shard-query/ .

Beim "Spaltenspeicher" in MariaDB 10.2 werden wahrscheinlich auch mehrere Kerne verwendet.

1
Rick James