Her zaman bir silme sorgusu çalıştırmak için, ya da bu bilgileri ilk olup olmadığını kontrol etmek için daha verimli

4 Cevap php

Her zaman bir giriş var ya da değil, örneğin (DELETE * from table WHERE username='user') belli bir süre sonra bir kullanıcı adı silmek isteyip varsayılan bir DELETE sorgusu çalıştırmak için, ya da satırlar eğer ilk kontrol etmelisiniz daha verimli Silinecek bir SELECT sorgusu kullanarak ve denetimi var mysql_num_rows.

Ne sunucu tarafında daha fazla işlemci kaynaklarını kullanır?

Açıkçası bir yaklaşım daha fazla kod içeriyor, ancak bazı mysql işlemleri diğerlerine göre çok daha fazla CPU kullanıldığında merak ediyordum.

4 Cevap

Sistem kadar zaman alır (ve tam anlamıyla tam olarak aynı işi yapmak) o select olurdu gibi silmek için satır bulma beri sil daha verimlidir.

Ancak, sıfır satır silinmesi durumunda özel mantık tekme sahip olmak istiyorsanız, size ROW_COUNT() işlevini kullanabilirsiniz ve silme sonra sıfır olmadığını kontrol edin.

Ayrıca, related answer here bkz.

MySQL zaten sizin için kontrol yapacak çünkü kontrol etmeye gerek yoktur. Denetleme nedeniyle yol bulundu rekor silinecektir eğer o zaten başlı başına bir kontrol sorgu ve eserleri DELETE, gerçekten gerek yok bir daha ekstra sorgu olacaktır.

Ben normal bir silme oldukça iyi hiçbir kayıt set-tabanlı işletim kara etkilenen bile "başarılı" anlaşılır olduğunu düşünüyorum.

Zaman verimliliği ve çalışma zamanı hiçe ve programın okunabilirliği bakarak, Bu çok anlamak daha kolay ve mantıksal veri mevcut yerine doğrudan silme işlevi çağıran olmadığını ilk kontrol fonksiyonları varsa okumak daha kolaydır. Bu şekilde, ek kontrol işlevleri veya onay seçenekleri ekleyebilirsiniz.