#django #database #performance #postgresql
#django #База данных #Производительность #postgresql
Вопрос:
Мне пришлось загрузить миллион записей в мою таблицу PostgreSQL из файла xls, и с настройками базы данных по умолчанию это заняло более 5 минут (даже после использования необработанных SQL-запросов с подключением курсора). Поэтому, чтобы повысить производительность, я попробовал это, удаленно подключившись (используя psycopg2) к той же базе данных, и вставка всех записей едва ли заняла 100 секунд.
mydb = psycopg2.connect(database="test", user="test", password="test")
cursor = mydb.cursor()
cursor.execute('INSERT INTO TABLE')
Хотя мне удалось найти более быстрое решение, я не смог найти причину, по которой удаленное подключение к базе данных выполняется быстрее, чем подключение к базе данных по умолчанию.
Комментарии:
1. Предположение — возможно, psycopg2 сохраняет соединение с базой данных открытым, в то время как django закрывает его после каждого запроса, попробуйте установить docs.djangoproject.com/en/1.10/ref/settings/#conn-max-age введите параметр в настройках вашей базы данных django и посмотрите, поможет ли это.