PostgreSQL - CREATE TABLE AS和INSERT INTO性能比较
问题描述:
我试图插入几百万行到PostgreSQL数据库中。我想知道做什么是最好的方法。PostgreSQL - CREATE TABLE AS和INSERT INTO性能比较
- CREATE TABLE AS
- INSERT INTO
我期待看到哪一个更好,为什么?我已经阅读了一些博客,但仍然无法得出结论。
我认为INSERT INTO是一个批量插入操作。如果我错了,请纠正我。是否CREATE TABLE AS SELECT是批量插入操作?
请指教。
答
CREATE TABLE AS
也是批量插入操作。主要区别在于CREATE TABLE AS
更容易针对PostgreSQL进行优化;很显然,不需要编写WAL信息(当然,除非基于WAL的复制处于活动状态)。对于适用此优化的其他一些情况,请参阅wal_level
documentation和Disable WAL Archival and Streaming Replication。
您尚未提供足够的信息来回答此问题。这里没有一个真相,它很大程度上取决于你实际在做什么。 – Nicarus
[来自CREATE TABLE AS手册的引用](https://www.postgresql.org/docs/current/static/sql-createtableas.html):“*该命令在功能上类似于SELECT INTO,但它是首选因为它不太可能与SELECT INTO语法的其他用法混淆。此外,CREATE TABLE AS提供了SELECT INTO *“ –