要在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;
我的问题是两者之间的区别是什么?哪个更快?
答案 0 :(得分:4)
COPY
命令在服务器端完全执行-输入/输出与服务器端流相关。但是,这些流可以重定向到客户端-在预先配置的环境中运行COPY
时。 \COPY
是这种情况。
\COPY
是psql
的命令-只能从psql
执行,它为可能从客户端流读取/写入的内部环境做准备,并执行{{ 1}}命令。
因此COPY
和COPY
之间的差异很小。 \COPY
以不同的配置执行,\COPY
用于从客户端读取/写入数据。性能应该相同-COPY
可能会因网络开销而变慢(很明显),但它并不重要。在这种情况下,通信协议应该有效。