Kann MySQL UNION-Unterabfragen (oder überhaupt) parallelisieren?

8

Ich verwende eine partitionierte Tabelle mit einer großen Datenmenge. Laut MySQL-Dokumenten ist es in der ToDo-Liste:

  

Abfragen mit Aggregatfunktionen wie SUM () und COUNT () können   leicht parallelisiert werden.

... aber kann ich die gleiche Funktionalität mit UNION-Unterabfragen erreichen? Sind sie parallelisiert oder muss ich einen Multithread-Client erstellen, um gleichzeitige Abfragen mit allen möglichen Partitionsschlüsseln auszuführen?

Bearbeiten:

Die Frage bezieht sich nicht ausschließlich auf UNION oder Unterabfragen. Ich möchte so viele Kerne wie möglich für meine Abfragen verwenden. Gibt es eine Möglichkeit, dies zu tun (und sicherzustellen, dass es getan wird), ohne meine Anwendung parallelisieren zu lassen?

Gibt es eine gute Dokumentation über die aktuellen Parallelisierungsfähigkeiten von MySQL?

    
vbence 28.07.2011, 15:04
quelle

3 Antworten

5

Soweit ich weiß, ist derzeit die einzige Möglichkeit, mehr als einen Thread / Kern zu verwenden, um Abfragen in Ihrer Anwendung auszuführen, mehr als eine Verbindung zu verwenden. Dies macht es natürlich unmöglich, parallele Abfragen auszuführen, die Teil einer einzelnen Transaktion sind.

    
Mchl 01.08.2011, 08:48
quelle
1

Die verschiedenen Abfragen, die in einer größeren Abfrage UNION-verknüpft sind, sind streng genommen keine Unterabfragen.

  • Die Abfragen werden in der Reihenfolge
  • ausgeführt
  • Der Datentyp der Spalten wird durch die erste Abfrage
  • bestimmt
  • Standardmäßig werden identische Zeilen gelöscht (UNION standardmäßig auf DISTINCT)
  • Die Ergebnismenge wird erst fertiggestellt, wenn alle Abfragen ausgeführt wurden

... es gibt keine Möglichkeit, die verschiedenen Abfragen parallel zu machen, da sie alle Teil derselben Abfrage sind.

Sie können versuchen, die verschiedenen Abfragen parallel in Ihrem Code auszuführen und dann die Ergebnisse in Ihrem Code zusammenzufassen, sobald alle Abfragen abgeschlossen sind.

Die Dokumentation zu UNIONs finden Sie hier .

    
TehShrike 28.07.2011 18:05
quelle
1

Ich denke, eine ähnliche Frage wurde hier beantwortet. Ссылка

(Vielleicht hätte ich das als Kommentar gepostet, aber ich konnte wirklich nirgendwo einen Kommentarknopf finden.)

    
rineez 28.07.2011 18:19
quelle