Я установил 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.