синтаксис COPY в postgresql - PullRequest
       28

синтаксис COPY в postgresql

0 голосов
/ 25 апреля 2011
INSERT INTO contacts_lists (contact_id, list_id)
          SELECT contact_id, 67544
          FROM plain_contacts

Здесь я хочу использовать команду «Копировать» вместо команды «Вставить» в SQL, чтобы сократить время на вставку значений.Я получил данные, используя операцию выбора.Как я могу вставить его в таблицу с помощью команды Копировать в postgresql.Не могли бы вы привести пример?Или любое другое предложение, чтобы добиться сокращения времени для вставки значений.

Ответы [ 2 ]

2 голосов
/ 25 апреля 2011

Поскольку ваши строки уже находятся в базе данных (поскольку вы, очевидно, можете SELECT их), использование COPY никак не увеличит скорость.

Чтобы использовать COPY, сначала необходимо записать значения в текстовый файл, который затем будет считан в базу данных.Но если вы можете SELECT их записать, запись в текстовый файл - совершенно ненужный шаг, который замедлит вставку, а не увеличит ее скорость

Ваше заявление выполняется так же быстро, как и получается.Единственное, что может ускорить его (кроме покупки более быстрого жесткого диска), - это удалить любой потенциальный индекс на contact_lists, содержащий столбец contact_id или list_id, и заново создать индекс после завершения вставки.

1 голос
/ 25 апреля 2011

Вы можете найти синтаксис, описанный во многих местах, я уверен.Одним из них является эта статья в вики .

Похоже, в основном это будет:

COPY plain_contacts (contact_id, 67544) TO some_file

И

COPY contacts_lists (contact_id, list_id) FROM some_file

Но я просто читаю из ресурсов, которые обнаружил Google.Попробуйте и отправьте сообщение, если вам нужна помощь в решении конкретной проблемы.

...