Задать вопрос

Как быстро вставить много строк в PostgreSQL?

Нужно получить и вставить много данных в БД. Примерно 6-7 миллионов строк. Получаю я из другого места. Так же, по одной колонке есть индекс уникальности и такая строчка может существовать. Как всё реализовать? БД только именно для этой операции. Вставить и хранить до нужного времени.
  • Вопрос задан
  • 4053 просмотра
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    Мидл Python-разработчик
    6 месяцев
    Далее
Решения вопроса 1
Если только "вставить и хранить" - я бы подумал, нахрена хранить в БД, если в "нужный момент" можно взять из файла, или откуда-нибудь ещё.

Вообще, традиционно проблема быстрой вставки решается в три приёма - снятие индекса, вставка, наложение индекса. В Postgre, если я помню верно, третий шаг бьётся ещё на два: добавление собственно индекса и наложение на него constraint. Такой путь чем-то не подходит?

Дополнительно, можно хорошо ускорить процесс, если вставлять по нескольку строк за раз, вроде
INSERT INTO table (field1, field2, field3) VALUES (value1, value2, value3), (value4, value5, value6), (value7, value8, value9)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы