SORU
19 HAZİRAN 2010, CUMARTESİ


WHERE SQL vs YA

Daha gerçekleştiren büyük veritabanları ile uğraşırken, IN OR Where-yan tümcesi SQL?

İdam onlar hakkında herhangi bir fark var mı?

CEVAP
19 HAZİRAN 2010, CUMARTESİ


Aşağıdaki arasındaki fark: performans bilmek isteyeceğinizi düşünüyorum

WHERE foo IN ('a', 'b', 'c')
WHERE foo = 'a' OR foo = 'b' OR foo = 'c'

Eğer değerleri sabit ise manual for MySQL göre IN listesini sıralar ve daha sonra ikili bir arama kullanır. OR bunları belirli bir sırayla tek tek değerlendirir hayal ediyorum. IN bazı koşullarda daha hızlıdır.

Öğrenmenin en iyi yolu daha hızlı olduğunu görmek için belirli bir veri ile veritabanı üzerinde her iki profil için.

1000000 satır ile bir MySQL de denedim. Sütunu dizine performans olarak gözle görülür bir fark hem de anında neredeyse yok. Sütun endeksli değil, bu sonuçları aldım:

SELECT COUNT(*) FROM t_inner WHERE val IN (1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000);
1 row fetched in 0.0032 (1.2679 seconds)

SELECT COUNT(*) FROM t_inner WHERE val = 1000 OR val = 2000 OR val = 3000 OR val = 4000 OR val = 5000 OR val = 6000 OR val = 7000 OR val = 8000 OR val = 9000;
1 row fetched in 0.0026 (1.7385 seconds)

Bu durumda bu yöntemi kullanarak 0 YA da daha yavaş olduğu hakkında. Dönem daha ekleyerek farkı büyütür. Sonuçlar diğer veri diğer veritabanları üzerinde ve değişebilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Google

    Google

    18 EYLÜL 2005
  • metal571

    metal571

    30 Mayıs 2006
  • PamtheBlamofficial

    PamtheBlamof

    31 Aralık 2010

İLGİLİ SORU / CEVAPLAR