Temporarily disable all table indices

Поиск
Список
Период
Сортировка
От Dmitry Koterov
Тема Temporarily disable all table indices
Дата
Msg-id d7df81620703261524nf42670di39e9985dcf807d0@mail.gmail.com
обсуждение исходный текст
Ответы Re: Temporarily disable all table indices  (Erik Jones <erik@myemma.com>)
Список pgsql-general
Hello.

I need to perform a mass operation (UPDATE) on each table row. E.g. - modify one table column:

UPDATE tbl SET tbl_text = MD5(tbl_id);

The problem is that if this table contains a number of indices, such UPDATE is very very slow on large table.

I have to drop all indices on the table, then run the update (very quick) and after that - re-create all indices back. It is much more speedy. Unfortunately the table structure may change in the future (e.g. - new indices are added), so I don't know exactly in this abstraction layer, what indices to drop and what - to re-create.

Is any way (or ready piece of code) to save all existed indices, drop them all and then - re-create after a mass UPDATE?

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

Предыдущее
От: "Matthijs Melissen"
Дата:
Сообщение: Problem with transactions
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: PG over NFS