2016-03-20 7 views
-1

Wir haben eine Tabelle, die 13m Reihen hat, Es ist Name und Nachname Felder sind standardmäßig Null, wenn wir versuchen, einige Daten zu drücken, stoppt es nach 1,2 m Abfrage ausgeführt. Wir haben mit 10k row jede wegen der ram Thema geloopt.Mysql Aktualisieren von Daten mit Name Generator mit Ruby

Der Algorithmus ist,

$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

Der Algorithmus stoppt nach 1,2 m Abfrage –

+0

Ich möchte lernen, warum –

Antwort

1

Ruby on Rails einige Methoden bauen in hat, die Sie verwenden möchten:

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

find_each durchläuft alle in Chargen Aufzeichnungen (mit einer Größe Standard Batch von 1000). update aktualisiert einen Datensatz.

+0

Das sieht gut aus, –

+0

Es löste mein Problem –