From: | Rob Kirkbride <rob(dot)kirkbride(at)gmail(dot)com> |
---|---|
To: | Gregory Stark <stark(at)enterprisedb(dot)com> |
Cc: | Richard Huxton <dev(at)archonet(dot)com>, pgsql-hackers(at)postgresql(dot)org, Daniel Lees <lees(dot)d(dot)a(at)googlemail(dot)com> |
Subject: | Re: Enhancement to pg_dump |
Date: | 2008-11-27 11:29:10 |
Message-ID: | 492E8486.9050403@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Gregory Stark wrote:
> There is documentation
>
> http://www.postgresql.org/docs/8.3/static/explicit-locking.html
>
> However I found it very confusing when I was first learning. It's not really
> the documentation's fault either, there are just a lot of different lock
> levels with a lot of different combinations possible.
>
> All DML, even selects, take a table-level shared lock on the tables involved
> which blocks the tables from being dropped or truncated while the query is
> running.
>
> DELETE and UPDATE (and SELECT FOR UPDATE) take exclusive row-level locks. A
> SELECT can read the old version of the record but another UPDATE will block
> until your transaction finishes so it can update the most recent version. But
> an update which doesn't need to look at that record won't be affected at all.
>
> TRUNCATE and DROP take exclusive table-level locks which blocks anyone else
> from even selecting from the table. It also means they can't proceed until all
> queries which have already started reading the table finish.
>
> DROP is still a lot heavier than TRUNCATE because it also has to drop (or
> search for and throw an error) anything else dependent on the table. triggers,
> views, etc.
>
>
Thanks for that - it's very useful. As you say I believe the
documentation is pretty good, it's just that we're not dealing in simple
issues here.
I definitely think I should do a delete rather than a truncate (or drop)
in my case.
Regards
Rob
From | Date | Subject | |
---|---|---|---|
Next Message | Zdenek Kotala | 2008-11-27 11:55:45 | Re: [WIP] In-place upgrade |
Previous Message | Peter Eisentraut | 2008-11-27 10:31:05 | Re: Brittleness in regression test setup |