Sal duidelike prestasie beïnvloed?

INHOUDSOPGAWE:

Sal duidelike prestasie beïnvloed?
Sal duidelike prestasie beïnvloed?

Video: Sal duidelike prestasie beïnvloed?

Video: Sal duidelike prestasie beïnvloed?
Video: Inside the MOST EXPENSIVE and HIGHEST Penthouse In the WORLD! 2024, November
Anonim

Ja, aangesien die gebruik van DISTINCT (soms volgens 'n opmerking) sal veroorsaak dat resultate bestel word Om honderde rekords te sorteer neem tyd. Probeer GROUP BY al jou kolomme, dit kan soms daartoe lei dat die navraagoptimeerder 'n meer doeltreffende algoritme kies (ten minste met Oracle het ek beduidende prestasietoename opgemerk).

Is dit sleg om duidelik te gebruik?

Wel, onbehoorlike gebruik van "distinct" verberg nie net die werklike probleem nie (duplikaatinskrywings in die tabelle, gebrek aan toestand in die aan-klousule) soos hierbo bespreek, maar ook degradeer navraagprestasie… Dit sal die IO-koste (logiese lees) van die navraag aansienlik verhoog.

Maak onderskeid navraag stadiger?

Baie min navrae kan vinniger werk in SELECT DISTINCT-modus, en baie min sal stadiger presteer (maar nie aansienlik stadiger nie) in SELECT DISTINCT-modus, maar vir die latere geval is dit waarskynlik dat die aansoek dalk die duplikaatsake moet ondersoek, wat die prestasie- en kompleksiteitslas na die aansoek verskuif.

Is dit beter om distinct of GROUP BY te gebruik?

In MySQL lyk DISTINCT 'n bietjie vinniger as GROUP BY as die veld nie geïndekseer is nie. DISTINCT skakel net duplikaatrye uit, maar dit lyk of GROUP BY hulle bykomend sorteer.

Hoekom moet ons nie distinct in SQL gebruik nie?

As select distinct daar is om 'n probleem 'op te los', sal jy waarskynlik 'n slegte prestasie in ruil kry. GROUP BY laat jou toe om totale funksies te gebruik, soos AVG, MAX, MIN, SUM en COUNT. DISTINCT verwyder net duplikate.

Aanbeveel: