PostgreSQL: производительность больших вставок без индекса, временная таблица - PullRequest
0 голосов
/ 26 февраля 2019

Я работаю с таблицей из 50 с лишним миллионов строк.

Я хотел бы знать, стоит ли ожидать повышения производительности, если я сначала вставлю пакеты по ~ 50 тыс. Строк во временную таблицу, изатем за один раз вставить все из них в таблицу массовых операций, вместо того, чтобы непосредственно вставлять ~ 50 тыс. строк в таблицу массовых вычислений?

Если быть точным, что лучше?

  • Множество небольших вставок в целевую таблицу или

  • Сначала вставьте в временную таблицу, а затем все в целевой таблице?

Таблица не имеет индексов.

Любые предложения по повышению производительности приветствуются, конечно!

1 Ответ

0 голосов
/ 27 февраля 2019

При INSERT производительность не должна зависеть от размера пакета.

Важно то, что вы не запускаете каждый INSERT в отдельной транзакции.

Дополнительно, больно, если каждый крошечный INSERT нужно анализировать отдельно, поэтому используйте подготовленный оператор.

Если вы это сделаете, то будет быстрее вставлять данные напрямую, а не использовать промежуточную таблицу.

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