PostgreSQL中copy和\copy命令的区别

12

在postgresql中,在文件和表之间传输数据有两种选项

COPY my_table FROM '/Users/user/Downloads/test.csv' DELIMITER ',' CSV HEADER;
或者
\COPY my_table FROM '/Users/user/Downloads/test.csv' DELIMITER ',' CSV HEADER;

我的问题是这两者之间有什么区别,哪一个更快?

1个回答

17

COPY命令完全在服务器端执行 - 输入/输出与服务器端流相关。但是这些流可以被重定向到客户端 - 当您在预配置的环境中运行COPY时,就会发生这种情况。这时使用\COPY

\COPYpsql命令 - 它只能从psql执行,并为可能从客户端流进行读/写准备内部环境,并执行COPY命令。

因此,COPY\COPY之间的差异很小。 \COPY是以不同配置执行的COPY,以便可能从客户端读/写数据。性能应该是相同的 - 由于网络开销(显然),\COPY可能会慢一点,但不应该有太大影响。在这种情况下,通信协议应该是有效的。


STDIN参数用于COPY命令时,使其表现得几乎像\copy命令一样。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接