Evet, çünkü DISTINCT kullanmak (bazen bir yoruma göre) sonuçların sıralanmasına neden olur Yüzlerce kaydı sıralamak zaman alır. GROUP BY BY tüm sütunlarınızı deneyin, bu bazen sorgu iyileştiricinin daha verimli bir algoritma seçmesine neden olabilir (en azından Oracle ile önemli bir performans artışı fark ettim).
Farklı kullanmak kötü mü?
Pekala, "farklı" ifadesinin yanlış kullanımı, yukarıda tartışıldığı gibi yalnızca gerçek sorunu (tablolardaki yinelenen girişler, on yan tümcesinde koşul eksikliği) gizlemekle kalmaz, aynı zamanda sorgu performansını düşürür… Bu, sorgunun IO Maliyetini (mantıksal okumalar) önemli ölçüde artırır.
Ayrılık, sorguyu yavaşlatır mı?
DISTINCT SEÇ modunda çok az sayıda sorgu daha hızlı performans gösterebilir ve çok az sayıda sorgu daha yavaş çalışır (ancak önemli ölçüde daha yavaş değil) SELECT DISTINCT modunda, ancak daha sonraki durum için büyük olasılıkla uygulamanın, performans ve karmaşıklık yükünü uygulamaya kaydıran yinelenen durumları incelemesi gerekebileceği.
Farklı mı yoksa GROUP BY mi kullanmak daha iyi?
MySQL'de, DISTINCT, Alan dizine eklenmemişse GROUP BY işlevinden biraz daha hızlı görünür. DISTINCT yalnızca yinelenen satırları ortadan kaldırır, ancak GROUP BY bunları ek olarak sıralıyor gibi görünüyor.
SQL'de neden farklı kullanmamalıyız?
Bir sorunu 'düzeltmek' için farklı bir seçim varsa, karşılığında kötü bir performans elde etmeniz olasıdır. GROUP BY, AVG, MAX, MIN, SUM ve COUNT gibi toplu işlevleri kullanmanıza olanak tanır. DISTINCT sadece kopyaları kaldırır.