Bir sorguyu bir sonuç kaydıyla sınırlayacak, büyük bir (ish) MySQL tablosunda, tablo yalnızca bir eşleşen sonuca sahipse, performansı iyileştirecek mi? Bir kaydı bir sorguyla sınırlandırır Performansı iyileştirir
select * from people where name = "Re0sless" limit 1
bu adla yalnızca bir kayıt varsa örneğin
için? ve name
, birincil anahtar/benzersiz olarak ayarlanmışsa ne olacak? ve sorguyu güncellemeye değer mi yoksa kazanım minimum mı olacak?
Tam tablo taramasını engeller mi, yoksa tam tablo taramasının erken durmasına neden olur mu? Kayıt yoksa, tam dolu bir tablo taraması yapmak zorunda kalır. –
Evet, haklısınız. Tam bir tablo taramasının "önleyebileceğini" söylemiş olmalıydı. İletiyi –
olarak ayarlayacağım. Anladığım kadarıyla burada önemli olan şey, limiti eklemek, sorgunuzu daha hızlı hale getirebilir, ancak daha yavaş yapamaz. Başka bir şey yoksa, aynı zamanda, koşulların sizin düşündüğünüz gibi benzersiz olmadığı bir durumun hatalarını ayıklaması durumunda, gelecekteki geliştiricilere yönelik niyetinizi açıkça telgraflamanıza da hizmet eder. Ben sadece bir sonuç olduğunda her zaman bir limit cümlesi eklemek için bir alışkanlık haline getiriyorum. Önceden var olan bir endeksin sizin için bunu yapıp yapmadığını anlamak sadece boşa harcanan beyin gücüdür. – GrandOpener