Döngü İçinde Yazma (ARCH6052)
Anahtar ruby.orm.write-inside-loop · Önem warning · Kategori orm
Döngünün her turunda save/commit çağırmak, her öğe için ayrı bir DB gidiş-dönüşü oluşturur. Bu, tek bir toplu işlem yerine N adet round-trip demektir.
Hatalı
Bölüm başlığı “Hatalı”names.each do |name| User.create!(name: name) # her tur için ayrı INSERTendrecords = names.map { |name| { name: name } }User.insert_all(records) # tek toplu INSERTDüzeltme
Bölüm başlığı “Düzeltme”Satır başına kalıcılaştırma yerine kayıtları biriktirip insert_all gibi toplu bir API ile tek seferde yazın.