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

  • GWTLecturer

    GWTLecturer

    18 EKİM 2012
  • Hollyscoop

    Hollyscoop

    30 Ocak 2007
  • Sean Murphy

    Sean Murphy

    4 ŞUBAT 2009

İLGİLİ SORU / CEVAPLAR