insert、to_sql、copy_from 3种写入PG数据库代码效率对比

本文对比了三种将数据写入PostgreSQL数据库的方法:1) 使用insert命令,2) pandas的to_sql方法,3) psycopg2的copy_from方法。实验结果显示,对于13642条数据,insert命令用时约5s,对内存影响大;to_sql用时约8s,内存占用小;而copy_from最快,不到1s,成为最佳选择。需要注意的是,使用copy_from时需指定columns参数以确保数据正确写入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天写入PG的时候直接用insert命令拼接字符串被数据库的同事批了,o(╥﹏╥)o

这里我测试了3种写入PG数据库的方式,数据源为1个含有13642条数据的csv,并进行了一个对比:

1.insert命令写入

具体的命令代码见我的这篇文章:https://blog.youkuaiyun.com/weixin_44731100/article/details/88534304

可见,写入13642条数据用时约5s

但是这种方式是用了一种拼接字符串的方式,一次性写入1w条数据,想想这个字符串的长度都可怕,我保存了一下发现这条写入1w条数据的SQl文本大小约为386M。可见,这种方式对于数据库内存影响很大。


"insert into table_name
(warehouse_code,storehouse_code,zone_code,picking_zone_code,picking_type,location_code,\
gds_id,kunnr,yest_tot_qty,week_tot_qty,month_tot_qty,week_avg_prlab,month_avg_prlab,\
present_storage,start_date,end_date,week_flag,unsaleble_flag,super_A,sales_segment,\
present_class,week_avg_qty,month_avg_qty,now_level,pred_level,statis_date,\
prediction_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值