отправка данных в postgres, установленную на экземпляре AWS ec2, занимает в 43 раза больше по сравнению с postgres, установленным локально на mac - PullRequest
0 голосов
/ 04 октября 2019

Я установил postgres 10 на свой локальный компьютер с четырехъядерным компьютером и 16 ГБ ОЗУ mac book. Я использую sqlalchemy для передачи данных из моего ноутбука Python в локальную таблицу postgres. member_df имеет 100 строк, и таблица назначения пуста до выполнения, и это заняло 0,04 секунды.

engine=localengine
ts = time.time()
member_df.to_sql('member', engine,if_exists='append',index=False)
te = time.time()
print ('Time taken %2.2f' % (te - ts))

У меня на ec2 установлен postgres 10 с теми же настройками, что и на моей локальной машине с ubuntu. Я использую тот же сценарий для отправки данных в postgres на экземпляре ec2 с теми же 100 строками в кадре данных, и это занимает 43 секунды.

engine=awsengine
ts = time.time()
member_df.to_sql('member', engine,if_exists='append',index=False)
te = time.time()
print ('Time taken %2.2f' % (te - ts))

Теперь у меня есть как минимум 56000 строк, которые мне нужно вставлять ежедневно, ноПохоже, это невозможно, я запустил скрипт на 1 час и отменил его. Мой экземпляр ec2 - новый, и я вручную установил postgres. Кроме того, таблица в экземпляре local и ec2 не имеет индексов, но имеет 1 первичный ключ. Любая помощь очень важна для повышения производительности на AWS. Я действительно не понимаю, почему это так сильно сказывается на производительности в сравнении с AWS.

enter image description here

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...