psycopg2:使用什么 page_size

acd*_*cdr 5 python psycopg2

我正在将大量记录写入 postgres 数据库,使用 psycopg2.extras.execute_values(cursor, query, data, page_size=100)

我知道page_size参数的作用,但真的不知道将它设置为什么是合理的值。(以上使用默认值 100。)简单地将其设置为大得离谱的值有什么缺点?

小智 3

根据我的理解,page_size给出了每个sql语句输入值的大小。给出更大的数字意味着更长的 sql 语句,因此查询使用更多的内存。如果您不需要查询返回任何值,则可以安全地使用较小的值,例如默认情况下的 100。

但是,如果您想使用返回语句插入/更新某些表,您可能希望将 page_size 增加到至少与数据相同的长度。您可以将其设置为 length(data) (您的数据应该是列表列表或元组列表),缺点是您必须对每次调用的数据值数量引入一些限制。Postgresql允许很长的sql,所以如果你有足够的内存,数百万条记录应该是可以接受的。