Re: Удаление Large Objects
От | Andrey N. Oktyabrski |
---|---|
Тема | Re: Удаление Large Objects |
Дата | |
Msg-id | 4B97963B.7050709@bestmx.ru обсуждение исходный текст |
Ответ на | Удаление Large Objects (John KEA <johnkea21@yahoo.com>) |
Список | pgsql-ru-general |
On 03/09/10 21:57, John KEA wrote: > подскажите пожалуйста можно ли побороть проблему медленного удаления > Large Objects в PostgreSQL. Проблема состоит в следующем, в базе > проживает N больших объектов (Large Objects), требуется наибыстрейшим > образом удалить M больших объектов из базы (N>M). Например, удаление > 3000 больших объектов, каждый из которых по мегабайту, занимает около > 30и минут, что противоречит определенным требованиям. Каким образом > можно было бы сократить время удаления в разы? Давно уже в постгресе LO хранятся в этой таблице: ano=# \d pg_largeobject Table "pg_catalog.pg_largeobject" Column | Type | Modifiers --------+---------+----------- loid | oid | not null pageno | integer | not null data | bytea | Indexes: "pg_largeobject_loid_pn_index" UNIQUE, btree (loid, pageno) Быть может, нечто вроде DELETE FROM pg_largeobject WHERE loid IN (...); даст желаемый результат? Однако, перед тем, как лезть в эту табличку, необходимо удостовериться в наличии полного и актуального бэкапа. Я не пробовал так делать и не могу предсказать последствия. Ну или хотя бы потренироваться на кроликах.
В списке pgsql-ru-general по дате отправления: