Как востановить индексы?

BoJlxB
Дата: 04.06.2003 09:01:57
Есть таблица с одним индекным полем. В таблице около 1.500.000 записей.
После массового(около 50% таблицы) delete/insert ломаются индексы. И при селекте постгресс уже не использует индексы. Делаю: vacuum analyze table_name. Не помогает. Что можно сделать?
wbear
Дата: 04.06.2003 11:46:34
посмотри вначале explain c включенным и выключенным enable_seqscan,
потом посмотри explain analyze ... возможно просто planer надо подкрутить..
а там будет видно поломались ли индексы или нет
а вообще "REINDEX -- rebuild corrupted indexes "
BoJlxB
Дата: 04.06.2003 12:57:01
С выключенным enable_seqscan индекс используется. И что это значит (прошу прощения за возможно тупой вопрос, но я просто плохо знаю PostgreSQL)?

А explain analyze у меня нету, т.к. версия PostgreSQL 7.1.3.

И REINDEX я делал, не помогло, делал vacuum для всей БД тоже не помогло.

Вот ещё чего заметил:
если делаю select word from dict where word='aaaa' то индекс ипользуется;
а если select word from dict where word='aaaa' or d0.word='bbbbbb' , то не используется.
BoJlxB
Дата: 04.06.2003 13:01:43
>> а если select word from dict where word='aaaa' or d0.word='bbbbbb' , то не используется

сорри, очепятка, последний запрос такой: select word from dict where word='aaaa' or word='bbbbbb'

а что такое planer?
wbear
Дата: 05.06.2003 13:24:07
planer ет типа кусок postgresa который выбирает как ему делать select
выбирая записи с помощью индекса или простым перебором.. обшими словами приблезительно так

>сорри, очепятка, последний запрос такой: select word from dict where
>word='aaaa' or word='bbbbbb'

читай доки по посгресу... там все написанно лучше и болше
BoJlxB
Дата: 05.06.2003 13:51:02
Спасибо.

А доки читать, у меня с английским плохо, а то что на русском нашел, почитал.