Heim > Datenbank > MySQL-Tutorial > SELECT DISTINCT oder GROUP BY: Welche MySQL-Abfrage ist für eindeutige Werte schneller?

SELECT DISTINCT oder GROUP BY: Welche MySQL-Abfrage ist für eindeutige Werte schneller?

Mary-Kate Olsen
Freigeben: 2025-01-15 06:28:43
Original
450 Leute haben es durchsucht

SELECT DISTINCT or GROUP BY: Which MySQL Query is Faster for Unique Values?

Leistungsvergleich von SELECT DISTINCT und GROUP BY in MySQL

In MySQL können Sie die Abfrage SELECT DISTINCT oder GROUP BY verwenden, um eindeutige Werte in der Tabelle zu extrahieren. Es besteht jedoch eine gewisse Unklarheit darüber, welche Methode die bessere Leistung erbringt.

Betrachten Sie das folgende Formular:

<code class="language-sql">CREATE TABLE users (
  id int(10) unsigned NOT NULL auto_increment,
  name varchar(255) NOT NULL,
  profession varchar(255) NOT NULL,
  employer varchar(255) NOT NULL,
  PRIMARY KEY  (id)
)</code>
Nach dem Login kopieren

Um eindeutige Werte für das Feld „Beruf“ abzurufen, können Sie zwei Abfragen verwenden:

Abfrage 1 (SELECT DISTINCT):

<code class="language-sql">SELECT DISTINCT u.profession FROM users u</code>
Nach dem Login kopieren

Abfrage 2 (GROUP BY):

<code class="language-sql">SELECT u.profession FROM users u GROUP BY u.profession</code>
Nach dem Login kopieren

Welches ist schneller?

Obwohl diese beiden Abfragen funktional gleichwertig erscheinen, kann ihre Leistung je nach Abfrageoptimierer variieren. Normalerweise ist SELECT DISTINCT etwas schneller.

Das liegt daran, dass GROUP BY standardmäßig nach allen sichtbaren Spalten gruppiert. Da in diesem Fall keine anderen Spalten in der Abfrage verwendet werden, muss der Optimierer möglicherweise zusätzliche Arbeit leisten, um festzustellen, ob die Gruppierung keinen Sinn ergibt. Andererseits fordert SELECT DISTINCT explizit einen eindeutigen Wert an.

Fazit

In den meisten Fällen ist der Leistungsunterschied zwischen SELECT DISTINCT und GROUP BY vernachlässigbar. Wenn die Optimierung jedoch von entscheidender Bedeutung ist, wird die Verwendung von SELECT DISTINCT empfohlen, da dies die Aufgabe des Abfrageoptimierers vereinfacht.

Tipp: Um aussagekräftige Ergebnisse zu erhalten, wird empfohlen, beide Methoden immer in einer Umgebung zur Leistungsüberwachung zu testen.

Das obige ist der detaillierte Inhalt vonSELECT DISTINCT oder GROUP BY: Welche MySQL-Abfrage ist für eindeutige Werte schneller?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage