Re: DELETE vs TRUNCATE explanation

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: sthomas(at)optionshouse(dot)com
Cc: Craig James <cjames(at)emolecules(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Daniel Farina <daniel(at)heroku(dot)com>, Craig Ringer <ringerc(at)ringerc(dot)id(dot)au>, "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org>
Subject: Re: DELETE vs TRUNCATE explanation
Date: 2012-07-11 21:04:39
Message-ID: 4FFDEA67.6000801@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-performance


On 07/11/2012 04:47 PM, Shaun Thomas wrote:
> On 07/11/2012 03:18 PM, Craig James wrote:
>
>> It strikes me as a contrived case rather than a use case. What sort of
>> app repeatedly fills and truncates a small table thousands of times ...
>> other than a test app to see whether you can do it or not?
>
> Test systems. Any company with even a medium-size QA environment will
> have continuous integration systems that run unit tests on a trash
> database hundreds or thousands of times through the day. Aside from
> dropping/creating the database via template, which would be *really*
> slow, truncate is the easiest/fastest way to reset between tests.

Why is recreating the test db from a (populated) template going to be
slower than truncating all the tables and repopulating from an external
source? I had a client who achieved a major improvement in speed and
reduction in load by moving to this method of test db setup.

cheers

andrew

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2012-07-11 21:20:28 Re: Schema version management
Previous Message Peter Eisentraut 2012-07-11 21:04:19 Re: pgsql_fdw in contrib

Browse pgsql-performance by date

  From Date Subject
Next Message Mark Thornton 2012-07-11 21:32:33 Re: DELETE vs TRUNCATE explanation
Previous Message Shaun Thomas 2012-07-11 20:47:21 Re: DELETE vs TRUNCATE explanation