create_table: test_objects do | t | t.column: field1,: integer t.column: field2,: integer t.column: field3,: integer t.column: field4,: integer t.column: field5,: integer end
values = []
5000.times do
values.push ({: field1 => rand (10000),: field2 => rand (10000),: field3 => rand (10000),
: field4 => rand (10000),: field5 => rand (10000)})
end
values.each do | item |
TestObject.new (item) .save
end
require 'ar-extensions' require 'ar-extensions / adapters / mysql' require 'ar-extensions / import / mysql' .... objs = [] values.each do | item | objs.push (TestObject.new (item)) end TestObject.import objs
sql = ActiveRecord :: Base.connection ()
values.each do | item |
sql.execute ("INSERT INTO` test_objects` (`field1`,` field2`, `field3`,` field4`, `field5`)
VALUES ('# {item [: field1]}', '# {item [: field2]}', '# {item [: field3]}', '# {item [: field4]}', '# {item [: field5]} ') ")
end
sql = ActiveRecord :: Base.connection ()
sql.execute ("START TRANSACTION")
values.each do | item |
sql.execute ("INSERT INTO` test_objects` (`field1`,` field2`, `field3`,` field4`, `field5`)
VALUES ('# {item [: field1]}', '# {item [: field2]}', '# {item [: field3]}', '# {item [: field4]}', '# {item [: field5]} ') ")
end
sql.execute ("COMMIT")
objs = []
values.each do | item |
objs.push ("('# {item [: field1]}', '# {item [: field2]}', '# {item [: field3]}', '# {item [: field4]}}, '# {item [: field5]}') ")
end
sql.execute ("INSERT INTO` test_objects` (`field1`,` field2`, `field3`,` field4`, `field5`) VALUES" + objs.join (','))
Source: https://habr.com/ru/post/65555/
All Articles