MySQL veritabanında performans için çalışırken genelde EXPLAIN komutunu kullanırız. Burada bize bazı değerler gösterir ve bizi performansı arttırmak için ne tür bir yol izlememiz konusunda bilgilendirir.
Tabii bu değerleri ve anlamları bilmiyorsak, yolumuzu da bulamayız. Bu noktada bazı değerleri anlatmam gerektiğini düşündüğüm için ufak ufak bu tür soruları ve cevaplarını paylaşacağım.
Eğer join kullanımı esnasında bir subquery kullanıyorsanız ve bu sub query içerisinde, ana sorgudan bir değer, referans içeriyorsa, açıklama bölümündeki ilişkilerde bu sorgu için Dependent Sunquery olarak gözükür. Küçük bir örnek verecek olursak;
SELECT * FROM tablo1 T1 WHERE (1) = ( SELECT COUNT(DISTINCT(T2.SATISLAR)) FROM tablo2 T2 WHERE T2.SATISLAR > T.SATISLAR);
Independet ise, Dependetn’in aksine içinde, dış sorgudan herhangi bir değer veya referans almıyorsa Independent Query olarak nitelendirilir. Yani bağımsız sorgudur.
Buna da küçük bir örnek verecek olursak
SELECT * FROM tablo1 T1 WHERE (1) = ( SELECT COUNT(DISTINCT(T2.SATISLAR)) FROM tablo2 T2 WHERE T2.SATISLAR > 100);