MYSQL EXISTS , NOT EXISTS KULLANIMI

Mysql de in , not in yerine exists , not exists kullanımı çok daha performanslı şelikde result döndürür. Çünkü in , not in de mysql indexleri kullanmaz

fakat exits ve not exists de index kullanımı vardır. Aşağıdaki örnek de in li bir query’inin exist li hale dönüşüm örneğini bulabilirsiniz.

 

NOT IN KULLANIMI:

SELECT `sender`,COUNT(`id`)AS toplam
FROM `inbox`
WHERE `sender`
NOT IN (SELECT `sender` FROM inbox WHERE `dateSent`>’2014-03-14′ AND dateSent<‘2014-04-01’) AND `dateSent`<‘2014-03-14’
GROUP BY `sender`

 

NOT EXISTS KULLANIMI:

 

SELECT i.sender,COUNT(i.id)AS toplam FROM inbox i
WHERE  NOT EXISTS (SELECT sender FROM inbox ii  WHERE ii.dateSent>’2014-03-14′ AND ii.dateSent<‘2014-04-01’ AND i.id=ii.id)
AND i.dateSent<‘2014-03-14’ GROUP BY i.sender

 

www.mysqlturkiye.com