From: | Mark Kirkwood <mark(dot)kirkwood(at)catalyst(dot)net(dot)nz> |
---|---|
To: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: Need to tune for Heavy Write |
Date: | 2011-08-04 22:32:34 |
Message-ID: | 4E3B1E02.1060704@catalyst.net.nz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On 05/08/11 05:40, Samuel Gendler wrote:
>
>
> On Wed, Aug 3, 2011 at 9:56 PM, Adarsh Sharma
> <adarsh(dot)sharma(at)orkash(dot)com <mailto:adarsh(dot)sharma(at)orkash(dot)com>> wrote:
>
> Dear all,
>
> From the last few days, I researched a lot on Postgresql
> Performance Tuning due to slow speed of my server.
> My application selects data from mysql database about 100000 rows
> , process it & insert into postgres 2 tables by making about 45
> connections.
>
>
> It's already been mentioned, but is worth reinforcing, that if you are
> inserting 100,000 rows in 100,000 transactions, you'll see a huge
> performance improvement by doing many more inserts per transaction.
> Try doing at least 500 inserts in each transaction (though you can
> possibly go quite a bit higher than that without any issues, depending
> upon what other traffic the database is handling in parallel). You
> almost certainly don't need 45 connections in order to insert only
> 100,000 rows. I've got a crappy VM with 2GB of RAM in which inserting
> 100,000 relatively narrow rows requires less than 10 seconds if I do
> it in a single transaction on a single connection. Probably much less
> than 10 seconds, but the code I just tested with does other work while
> doing the inserts, so I don't have a pure test at hand.
Also worth mentioning is doing those 500 inserts in *fewer* than 500
INSERT operations is likely to be a huge improvement, e.g:
INSERT INTO table VALUES (....),(....);
instead of
INSERT INTO table VALUES (....);
INSERT INTO table VALUES (....);
I'd be tempted to do all 500 row insertions in one INSERT statement as
above. You might find that 1 connection doing this is fast enough (it is
only doing 200 actual INSERT calls in that case to put in 100000 rows).
regards
Mark
From | Date | Subject | |
---|---|---|---|
Next Message | Steve Crawford | 2011-08-04 23:47:19 | Re: table size is bigger than expected |
Previous Message | Nicholson, Brad (Toronto, ON, CA) | 2011-08-04 22:00:42 | Re: Suspected Postgres Datacorruption |