MySQL

MySQL EXISTS Kullanımı

Bu eğitimde, MySQL EXISTS operatörünü nasıl kullanacağınızı ve sorguların performansını artırmak için ne zaman kullanacağınızı öğreneceksiniz.

EXISTS operatörü, TRUE veya FALSE döndüren bir Boolean operatörüdür. EXISTS operatörü genellikle bir “var” durumunu test etmek için alt sorguda kullanılır.

Aşağıdaki, EXISTS operatörünün ortak kullanımını göstermektedir.

Alt sorgu herhangi bir satır döndürürse, EXISTS operatörü true, aksi halde false döndürür.

Ek olarak, EXISTS operatörü, eşleşen bir satır bulduğunda hemen işlemeyi sonlandırır. Bu özellik nedeniyle, bazı durumlarda sorgunun performansını artırmak için EXISTS operatörünü kullanabilirsiniz.

NOT operatörü, EXISTS operatörünü olumsuzlar. Başka bir deyişle, alt sorgu satır döndürmezse, aksi takdirde false döndürürse NOT EXISTS true değerini döndürür.

SELECT *, SELECT sütunu, SELECT sabit veya alt sorgudaki herhangi bir şeyi kullanabilirsiniz. Sonuçlar aynıdır çünkü MySQL SELECT yan tümcesinde görünen sutunlar’ı yok sayar.

MySQL EXISTS Örnekleri

Örnek: Bir ve üzerinde kitap alan öğrencileri listeleyen sorguyu yazınız.

 

Örnek: Hiç kitap almayan öğrencileri listeleyiniz.

EXISTS yan tümcesi SELECT ifadesinde kullanılabileceği gibi INSERT, UPDATE ve DELETE ifadeleri ile de kullanılabilir.

MySQL EXISTS vs. IN Karşılaştırması

Örnek: Bir ve üzerinde kitap alan öğrencileri listeleyen sorguyu IN kullanarak yapalım.

Örnek: Bir ve üzerinde kitap alan öğrencileri listeleyen sorguyu yazınız.

EXISTS işlecini kullanan sorgu, IN işlecini kullanandan çok daha hızlı.

Bunun nedeni, EXISTS operatörünün “en azından bulunan” prensibine dayanarak çalışmasıdır. True değerini döndürür ve en az bir eşleşen satır bulunduğunda taramayı durdurur.

Diğer taraftan, IN operatörü bir alt sorgu ile birleştirildiğinde, MySQL önce alt sorguyu işlemeli ve sonra sorgunun tamamını işlemek için alt sorgunun sonucunu kullanır.

Genel kural, alt sorgu yüksek miktarda veri içeriyorsa, EXISTS operatörünün daha iyi performans sağlamasıdır.

Ancak, IN işlecini kullanan sorgu alt sorgudan döndürülen sonuç kümesi çok küçükse daha hızlı çalışır.

Bu eğitimde, MySQL EXISTS operatörünü tartıştık ve sorgunun performansını artırmak için EXISTS operatörünü kullanma konusunda bazı yönergeler sunduk.

1 Yorum

Yorum yapmak için tıklayın