通过副本插入postgresql似乎太慢了

时间:2012-09-13 20:59:26

标签: python database performance postgresql bulkinsert

我正在使用postgres通过python将几千行的批量插入到表中:

def bulk_insert_copyfrom(cursor, table_name, field_names, values):
    if not values: return

    #print "bulk copy from prepare..."

    str_vals = "\n".join("\t".join(adapt_to_str(val) for val in cur_vals) for cur_vals in values)
    strf = StringIO(str_vals)
    #print "bulk copy from execute..."
    cursor.copy_from(strf, table_name, columns=tuple(field_names))

插入16000行需要一段时间,所以我决定一次插入1000以查看会发生什么,并在插入过程中获得更细粒度的视图。在此表中插入1000行只需2-3秒,每行有14列。在我看来,这应该发生得更快。实际上,1000行中的一些比其他行更快。为什么这次手术没有花费更少的时间?我已经定期运行VACUUM ANALYZE,这确实加快了它的速度,但它仍然比我想要的慢。

0 个答案:

没有答案