PostgreSQL High Performance Insert
约 1 分钟阅读
Strategies to maximize insertion performance:
- Use
COPY:COPY FROM STDINis significantly faster thanINSERT. - Unlogged Tables:
CREATE UNLOGGED TABLEavoids WAL writes (data lost on crash, useful for staging). - Disable Autovacuum: TEMPORARILY set
WITH (autovacuum_enabled=false)for bulk loads. - Minimal Indexes: Drop indexes before bulk load, recreate after. Keep only essential ones (e.g., PK if needed, though dropping PK validates consistency later).
- Synchronous Commit:
SET synchronous_commit = off(risk of data loss on recent commits, but faster). - Partitioning: Use inheritance/partitioning for easy bulk deletion (
DROP TABLE).
References
关联信息
反向链接、本文链接的其他页面和外部资料。
参考资料
其他外链2 条
- gist.github.com/valyala/ae3cbfa4104f1a022a2af9b8656b1131gist.github.com/valyala/ae3cbfa4104f1a022a2af9b8656b1131
- www.postgresql.org/message-id/CAKhTGFX-ChBSjqENrAv8uqUR_H5PTvf14jG0cOAq6c-ami_7sQ@mail.gmail.comwww.postgresql.org/message-id/CAKhTGFX-ChBSjqENrAv8uqUR_H5PTvf14jG0cOAq6c-ami_7sQ%40mail.gmail.com