Puncte:1

Ar trebui să folosesc Setări de agregare sau de interogare > Distinct pentru a elimina rezultatele duplicate?

drapel in

Am o vizualizare de bază care afișează articole publicate. Vizualizarea are un filtru contextual în câmpul de etichete al tipului de conținut al articolului, de ex. field_tags. Filtrul contextual este configurat să accepte mai multe ID-uri, de ex. 1+2+3 pentru SAU.

Când trec 1+2+3 pentru valoarea filtrului contextual, dacă un articol are mai mult de una dintre valorile transmise în field_tags, articolul apare de mai multe ori în rezultate.

Pot elimina cu ușurință rezultatele duplicate verificând Avansat > Setări de interogare > Distinct Caseta de bifat. Cu toate acestea, există un avertisment cu această casetă de selectare care arată că poate încetini interogarea:

Acest lucru va face ca vizualizarea să afișeze doar elemente distincte. Dacă există mai multe articole identice, fiecare va fi afișat o singură dată. Puteți folosi acest lucru pentru a încerca să eliminați duplicatele dintr-o vizualizare, deși nu funcționează întotdeauna. Rețineți că acest lucru poate încetini interogările, așa că utilizați-l cu precauție.

Alternativ, pot elimina rezultatele duplicate activând Avansat > Utilizați agregarea. Această opțiune nu are un avertisment cu privire la performanță, dar îmi imaginez că trebuie să încetinească și interogarea mea.

Ambele metode sunt eficiente pentru eliminarea rezultatelor duplicate din punctul meu de vedere. Cu această vizualizare simplă, nu mă aștept la nicio problemă de performanță, dar:

Care este diferenta dintre Avansat > Utilizați agregarea vs Avansat > Setări de interogare > Distinct pentru a elimina duplicatele? Care este mai performant?

drapel cn
Aceasta este o întrebare simplă SQL, mai degrabă decât una Drupal, este doar o întrebare de `SELECT DISTINCT` vs `GROUP BY`. Consultați https://stackoverflow.com/questions/581521/whats-faster-select-distinct-or-group-by-in-mysql pentru o mulțime de informații
sonfd avatar
drapel in
@Clive, văd, mulțumesc.Cred că ar fi util ca diferența dintre cele două opțiuni să fie înregistrată aici. În ceea ce privește performanța, acesta este cu siguranță mai bine răspuns pe alt site. Dacă vrei să postezi comentariul tău ca răspuns, îl voi accepta. Multumesc din nou.
Jaypan avatar
drapel de
Acest tip preferă agregarea: https://sqlperformance.com/2017/01/t-sql-queries/surprises-assumptions-group-by-distinct

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.