İçeriğe geç

Count Yerine Exists (ARCH5063)

Anahtar go.orm.count-vs-exists · Önem info · Kategori orm

Satır varlığını test etmek için count > 0 kullanmak, DB’nin tüm satırları saymasına neden olur. Bunun yerine ilk satırda durabilen bir exists sorgusu kullanın.

var count int64
db.Model(&User{}).Where("email = ?", email).Count(&count)
if count > 0 {
// var
}
var exists bool
db.Model(&User{}).
Select("1").
Where("email = ?", email).
Limit(1).
Find(&exists)
if exists {
// var
}

Varlık testlerinde tüm satırları sayan Count yerine Limit(1) ile kısa devre yapan bir sorgu kullanın.