Skip site navigation (1) Skip section navigation (2)

Чистка таблиц

From: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
To:
Cc: pgsql-ru-general(at)postgresql(dot)org
Subject: Чистка таблиц
Date: 2012-01-06 23:04:04
Message-ID: 20120106230404.GE883@apache.rbscorp.ru (view raw or flat)
Thread:
Lists: pgsql-ru-general
Имеются таблицы

 |t1_id|...|
 |t2_id|t1_id|...|
 |t3_id|...|
 |t4_id|t1_id|t3_id|...|

То есть таблички с форейгнами.

Объявлены столбики связей так:

t1_id INTEGE REFERENCES t1 (t1_id) ON DELETE CASCADE ON UPDATE
CASCADE;


в одной из таблиц ON DELETE SET NULL;

Ну и значит в таблице 

t1 ~ 2.5 млн записей
t2 ~ 0.5 млн записей
t3 - 10 записей
t4 ~ 1 млн записей

теперь удаляем

DELETE FROM t1 WHERE id = 2919364;

запрос выполняется немерянное количество времени.

План показывает примерно такой:

                                       QUERY PLAN                                       
----------------------------------------------------------------------------------------
 Delete on t1  (cost=0.00..8.59 rows=1 width=6)
   ->  Index Scan using t1_pkey on t1  (cost=0.00..8.59 rows=1 width=6)
         Index Cond: (id = 2919364)
(3 rows)

Памяти на инстансе мало. да. 1Гиг всего. Таблицы занимают примерно 2.5 Гиг.

Получается что добавление записей в эти таблицы (это таблицы с логами)
работает  без задержек. А удаление записей - примерно одна в три
минуты. Причем удаление по PRIMARY KEY.

Вопрос что можно сделать/посмотреть/переделать, чтобы можно было
нормально чистить логи в такой таблице?
-- 

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: unera(at)debian(dot)org jabber://UNera(at)uvw(dot)ru
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537

Responses

pgsql-ru-general by date

Next:From: Dmitry E. OboukhovDate: 2012-01-06 23:09:16
Subject: Таблицы с взаимными связями
Previous:From: Mihail NasedkinDate: 2011-12-22 09:02:43
Subject: Re: [pgsql-ru-general] проблема с послQ1|BBBBBF BBF3BBFF F?BBB}յ

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group