MySQL, silmeyi ve ardından eklemek için hızlı ya da varolan satırları güncelleştirmek için daha hızlı?

0 Cevap php

Her şeyden önce, bana sadece ben PHP çerçeve Yii kullanıyorum, o yüzden SQL deyimi mümkünse kendi kümesi tanımlanır içinde kalmak istiyorum diyelim. Ben muhtemelen her şeyi yapacağını bir büyük uzun SQL ifadesi oluşturmak olabileceğini biliyorum, ama ben daha ziyade oraya gitmek istemiyorum.

Tamam, ben bir masa Kullanıcıları ve bir tablo FavColors var düşünün. Sonra kullanıcıları olası renklerin büyük bir listeden bir veya daha fazla seçme kutusunu kontrol ederek renk tercihlerini seçebilirsiniz bir form var.

Bu sonuçlar böyle FavColors tabloda birden çok satır (id, User_id, color_id) olarak saklanır.

Şimdi kullanıcı gider ve onların renk tercihini değiştirir düşünün. Bu senaryoda, ne veritabanına yeni renk tercihlerini almak için en etkili yol olacaktır?

Option 1:

  • Bir kitle User_id eşleşen tüm satırları silerim
  • Sonra tüm yeni satırlar bir kitle ekleme yapmak

Option 2:

  • Nelerin değiştiğini görmek için her geçerli satırda geçmesi ve buna göre güncellemek
  • Daha fazla satır eklenecek gerekiyorsa, bunu.
  • Satırlar silinir gerekiyorsa, bunu.

Sadece iki ifadeleri gerektirir çünkü seçenek biri gibi, ama bir şey sadece, sadece bir satır silme hakkında yanlış hissediyor Orada daha hızlı daha yüksek değerlere kimlikleri otomatik artış yapma sorunu da var, ve içeri potansiyel geri hemen hemen aynı veri koymak Bu mümkün kaçınılmalıdır olmadığını bilmiyorum.

Seçenek 2 çok daha fazla programlama çalışması gerektirir, ama ben sadece tekrar oluşturmak için bir satır silmek istiyorum durumları önleyecektir. Ancak, PHP daha fazla yük ekleyerek MySQL için yük azalma değer olmayabilir.

Herhangi bir düşünce? Tüm ne yapardın?

0 Cevap