Received: from localhost (maia-1.hub.org [200.46.204.191]) by postgresql.org (Postfix) with ESMTP id 6EC679FB261 for ; Tue, 6 Mar 2007 08:22:59 -0400 (AST) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.191]) (amavisd-new, port 10024) with ESMTP id 84707-02 for ; Tue, 6 Mar 2007 08:22:53 -0400 (AST) X-Greylist: from auto-whitelisted by SQLgrey-1.7.4 Received: from heaven.kostyrka.org (h1634.serverkompetenz.net [81.169.154.44]) by postgresql.org (Postfix) with ESMTP id 3FB969FB25F for ; Tue, 6 Mar 2007 08:22:50 -0400 (AST) Received: from localhost (localhost [127.0.0.1]) by heaven.kostyrka.org (Postfix) with ESMTP id 43CA54FB88; Tue, 6 Mar 2007 13:22:48 +0100 (CET) Received: from heaven.kostyrka.org ([127.0.0.1]) by localhost (heaven.kostyrka.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 12870-05; Tue, 6 Mar 2007 13:22:48 +0100 (CET) Received: from andi-lap (localhost [127.0.0.1]) by heaven.kostyrka.org (Postfix) with SMTP id E3ADC4FB7C; Tue, 6 Mar 2007 13:22:46 +0100 (CET) Received: by andi-lap (sSMTP sendmail emulation); Tue, 6 Mar 2007 13:23:45 +0100 Date: Tue, 6 Mar 2007 13:23:45 +0100 From: Andreas Kostyrka To: Richard Huxton Cc: =?iso-8859-1?Q?jo=EBl?= Winteregg , pgsql-performance@postgresql.org Subject: Re: Insert performance Message-ID: <20070306122342.GO22981@andi-lap.la.revver.com> References: <1172596221.393824.41130@j27g2000cwj.googlegroups.com> <45ED1996.7050008@archonet.com> <1173167607.4917.8.camel@hatman> <45ED217D.30404@archonet.com> <1173172748.4917.23.camel@hatman> <45ED37D1.3000503@archonet.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <45ED37D1.3000503@archonet.com> User-Agent: mutt-ng/devel-r804 (Debian) X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200703/124 X-Sequence-Number: 23529 * Richard Huxton [070306 12:22]: > >>2. You can do a COPY from libpq - is it really not possible? > >> > >Not really but i have been testing it and inserts are flying (about > >100000 inserts/sec) !! > > What's the problem with the COPY? Could you COPY into one table then insert from that to your target table? Well, there are some issues. First your client needs to support it. E.g. psycopg2 supports only some specific CSV formatting in it's methods. (plus I had sometimes random psycopg2 crashes, but guarding against these is cheap compared to the speedup from COPY versus INSERT) Plus you need to be sure that your data will apply cleanly (which in my app was not the case), or you need to code a fallback that localizes the row that doesn't work. And the worst thing is, that it ignores RULES on the tables, which sucks if you use them ;) (e.g. table partitioning). Andreas