Обновление таблицы сиквела Медленно: Неправильное использование абстракции объекта сиквела?Сетевые параметры? - PullRequest
0 голосов
/ 27 мая 2018

Я обновляю существующую таблицу примерно так:

 def upload_airports_mariadb(city,...)
     airport=Airport.find_or_create(City: city)
     airport.AirportID=airportid
     airport.TimeZone=timezone
     airport.save
   end

В то время как аэропорт представляет собой простую модель:

require 'sequel'
class Airport < Sequel::Model
  set_primary_key [:City]

  # Allow to set primary key using mass assignment.
  unrestrict_primary_key

end

Используется в Webui для разового доступа за клик.это хорошо, но при использовании одного и того же кода для огромного количества обновлений для таблицы в цикле это ужасно медленно.Это цена за то, что вы не читаете всю таблицу, не корректируете ее и не записываете ее обратно за один раз?Честно говоря, мне нравится ощущение объекта, и я не хотел бы иметь дело с таблицами.

Наблюдение, которое вселяет в меня надежду, заключается в том, что скорость зависит от типа моего сетевого подключения.

Есть ли способ сообщить сиквелу, чтобы соединение оставалось открытым?Обновление 7k значений занимает до 40 минут ... это ужасно медленно

в настоящее время я просто звоню

@db = Sequel.connect("mysql2://path)

Почему это так медленно?

...