WAL bypass for INSERT, UPDATE and DELETE?

Поиск
Список
Период
Сортировка
От Simon Riggs
Тема WAL bypass for INSERT, UPDATE and DELETE?
Дата
Msg-id 1135261893.2964.502.camel@localhost.localdomain
обсуждение исходный текст
Ответы Re: WAL bypass for INSERT, UPDATE and DELETE?  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: [Bizgres-general] WAL bypass for INSERT, UPDATE and DELETE?  ("Jim C. Nasby" <jnasby@pervasive.com>)
Список pgsql-hackers
Having just optimized COPY to avoid writing WAL during the transaction
in which a table was first created, it seems worth considering whether
this should occur for INSERT, UPDATE and DELETE also.

It is fairly common to do data transformation using INSERT SELECTs and
UPDATEs. This is usually done with temporary tables however. (DELETE
would most efficiently be handled as an additional NOT clause on the
insert, so it is uncommonly used in this circumstance.)

However, CREATE TABLE AS SELECT (CTAS) does not allow inheritance, so a
new permanent partition has to be created using CREATE TABLE, followed
by an INSERT SELECT or COPY.

Is that sufficient reason to optimise INSERT SELECT and UPDATE also? Or
should I not bother? Or should I try to teach CTAS to use inheritance
(which sounds harder and has a few gotchas).

Currently, CTAS optimization requires a heap_sync during ExecEndPlan. It
would be easy enough to extend this so that it also works for INSERT,
UPDATE and DELETE.

Best Regards, Simon Riggs



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Euler Taveira de Oliveira
Дата:
Сообщение: Re: to_char and i18n
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Unsplitting btree index leaf pages