在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;
我的问题是这两者之间有什么区别,哪一个更快?
在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;
我的问题是这两者之间有什么区别,哪一个更快?
COPY
命令完全在服务器端执行 - 输入/输出与服务器端流相关。但是这些流可以被重定向到客户端 - 当您在预配置的环境中运行COPY
时,就会发生这种情况。这时使用\COPY
。
\COPY
是psql
命令 - 它只能从psql
执行,并为可能从客户端流进行读/写准备内部环境,并执行COPY
命令。
因此,COPY
和\COPY
之间的差异很小。 \COPY
是以不同配置执行的COPY
,以便可能从客户端读/写数据。性能应该是相同的 - 由于网络开销(显然),\COPY
可能会慢一点,但不应该有太大影响。在这种情况下,通信协议应该是有效的。
STDIN
参数用于COPY
命令时,使其表现得几乎像\copy
命令一样。 - undefined