distinct vs. group by was ist besser

für den einfachsten Fall: wir alle finden Sie unter:

select id from mytbl 
group by id

und

select distinct id from mytbl

wie wir wissen, erzeugen Sie dieselbe Abfrage-plan, die hatte schon mehrfach erwähnt, in der einige Elemente wie Was ist besser: Distinct-oder Group By

Hive, aber der ehemalige hat nur eine Aufgabe reduzieren, während die letztere hat viele.

Experimente, die ich gegründet, dass die GRUPPE VON 10+ Zeiten schneller als DISTINCT.

Sind Sie anders.

Also, was ich gelernt habe, ist:

GRUPPE-ist jedenfalls nicht schlechter als DEUTLICH, und es ist besser manchmal.

Ich würde gerne wissen:

1. Wenn diese Schlussfolgerung stimmt.

2. Wenn das stimmt, halte ich eindeutig als Ansatz für logische Bequemlichkeit, aber warum VERSCHIEDENE nicht-GRUPPE-DURCH die bessere Umsetzung?

3. Wenn false ist, ich wäre sehr begierig zu wissen, seine dezente Einsatz im big-data-situation.

Danke sehr!!:)

  • Die Frage, die Sie verknüpft ist speziell über MS SQL Server Verhalten. Verschiedene Motoren haben verschiedene Ansätze, verschiedene Optimierungen etc. Es gibt keinen Grund zu glauben, nur weil group by und distinct gleichwertig sind, die auf MS SQL (einige bestimmte version) dies gilt auch für die Struktur. Haben Sie verwendet, ERKLÄREN Sie, Blick auf die tatsächlichen Ausführungspläne?
  • Danke. Ich fand Ihren Ansatz und verwendet den vergangen zwei Tagen auf der Suche in der Abfrage-Pläne von my SQL. Das interessante an der Sache ist, für den einfachen Fall wie oben, die Abfragepläne sind gleich (alle mit group-by) aber anders, wenn ich viele VERSCHIEDENE+UNION versus GROUPBY+UNION.
  • Vielleicht einen guten Grund hat, oder vielleicht ist es nur ein versehen (distinct ist nicht ganz so weit verbreitet wie es früher war - früher war es die go-to-hack für schlecht gestaltete DBs). Man könnte diese auf Hadoop/Hive-issue-tracker oder sowas, aber du wirst wohl noch haben gerade mit ihm Rollen. Es ist nicht immer offensichtlich, warum zwei ähnliche Abfragen am Ende ausgeführt, Wild, anders.
  • Das ist der Punkt! Sie erinnern mich an Dritte-Normal-Form. Völlig mit Ihnen einverstanden. Es ist zu offensichtlich, aber ich hatte nicht einmal bemerkt! Ich denke, ich habe Sie bekommen, die Antwort will ich aus Ihren Kommentaren. DISTINCT ist nur ein hack.
InformationsquelleAutor Chiron | 2015-08-07
Schreibe einen Kommentar