2016-03-20 16 views
-1

13m satırları olan bir tablonuz var, Ad ve soyad alanları varsayılan olarak sıfırdır, bazı verileri zorlamaya çalıştığımızda, 1.2m sorgudan sonra çalışmayı durdurur. Biz ram sorunu nedeniyle her biri 10k satır ile ilmekledi.Mysql ruby ​​ile ad üreteci kullanarak veri güncelleme

Tahsil.find_each do |tahsil| 
    tahsil.update(name: Generator('name'), surname: Generator('surname')) 
end 

find_each yineler tüm kayıtları üzerinden toplu olarak (varsayılan toplu boyutu ile: Ruby on Bazı yöntemler kullanmak isteyebileceği inşa sahiptir

$i = 0; 
until $i > 13000 do 
    b = Tahsil.where("NO < ?",(10000*($i+1))).offset(10000*$i) 
    b.each do |a| 
     a.name = Generator('name') 
     a.surname = Generator('surname') 
     a.save 
    end 

    $i += 1 
end 
+0

Algoritma 1.2m sorgudan sonra duruyor –

+0

Neden öğrenmek istediğimi öğrenmek istiyorum –

cevap

1

algoritmasıdır, 1000). update bir kaydı günceller.

+0

Yararlı görünüyor, –

+0

Sorunum çözüldü –

İlgili konular