powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / отключить индекс.
10 сообщений из 10, страница 1 из 1
отключить индекс.
    #39779502
per
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую.

Можно ли отключить индекс на время?

Чтобы он не использовался постгресом, как буд-то его нет совсем.
...
Рейтинг: 0 / 0
отключить индекс.
    #39779548
grgdvo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
per,

По-моему смысла нет так делать.
Ну отключите вы индекс, записи добавятся/удалятся/изменятся, все равно его пересоздавать.
поэтому DROP/CREATE вполне....
...
Рейтинг: 0 / 0
отключить индекс.
    #39779679
jan2ary
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
per,

Ну вообще дроп, да.
А так вот на просторах интернета нашлось чудное:
Код: sql
1.
update pg_index set indisvalid = false where indexrelid = 'test_pkey'::regclass
...
Рейтинг: 0 / 0
отключить индекс.
    #39780139
grgdvo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jan2ary,

Если флаг выставить, то планировщик естественно не будет рассматривать индекс на использование,
и похоже пока REINDEX ему принудительно не сделаешь, флаг назад сам не вернется.
Да, прикольно! Но править системный каталог.....!!! :)
Как минимум нужно быть суперюзером.
...
Рейтинг: 0 / 0
отключить индекс.
    #39780242
per
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grgdvojan2ary,

Если флаг выставить, то планировщик естественно не будет рассматривать индекс на использование,
и похоже пока REINDEX ему принудительно не сделаешь, флаг назад сам не вернется.
Да, прикольно! Но править системный каталог.....!!! :)
Как минимум нужно быть суперюзером.


Получается что индекс становится неактуальным после отключения?

И пока его не пересоздашь - он будет неактивен?
...
Рейтинг: 0 / 0
отключить индекс.
    #39780245
per
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grgdvo,

просто смотрю EXPLAIN - индекс после включения (был выключен трое суток) используется.
...
Рейтинг: 0 / 0
отключить индекс.
    #39780248
per
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grgdvo,

EXPLAIN ANALYZE тоже сказал чтоиндекс используется:

Index Scan using my_index






Запрос:
Код: sql
1.
SELECT indisvalid FROM pg_index WHERE indexrelid = 'index'::regclass;


возвращает:
t
...
Рейтинг: 0 / 0
отключить индекс.
    #39780270
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://www.postgresql.org/docs/current/catalog-pg-index.html
If true, the index is currently valid for queries. False means the index is possibly incomplete: it must still be modified by INSERT/UPDATE operations, but it cannot safely be used for queries. If it is unique, the uniqueness property is not guaranteed true either.

Выводы? Менять руками системный каталог нельзя если не понимаете полностью что делаете.
Сам по себе флаг конечно назад не вернётся, такой же грязный хак каталога или перестраивать индекс. Используется флаг в частности во время построения create index concurrently как раз чтобы сказать "индекс необходимо писать, нельзя читать", будет ли он корректен без вызова validate_index отвечать не стану.

perпросто смотрю EXPLAIN - индекс после включения (был выключен трое суток) используется.
В традициях unix, суперпользователь может отстрелить себе ногу если хочет поразвлекаться.
...
Рейтинг: 0 / 0
отключить индекс.
    #39780283
per
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkij https://www.postgresql.org/docs/current/catalog-pg-index.html
If true, the index is currently valid for queries. False means the index is possibly incomplete: it must still be modified by INSERT/UPDATE operations, but it cannot safely be used for queries. If it is unique, the uniqueness property is not guaranteed true either.

Выводы? Менять руками системный каталог нельзя если не понимаете полностью что делаете.
Сам по себе флаг конечно назад не вернётся, такой же грязный хак каталога или перестраивать индекс. Используется флаг в частности во время построения create index concurrently как раз чтобы сказать "индекс необходимо писать, нельзя читать", будет ли он корректен без вызова validate_index отвечать не стану.

perпросто смотрю EXPLAIN - индекс после включения (был выключен трое суток) используется.
В традициях unix, суперпользователь может отстрелить себе ногу если хочет поразвлекаться.

Сам он не включился.

Вопрос в том, что если

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
--после 
update pg_index set indisvalid = false where indexrelid = 'test_pkey'::regclass


/*прошло трое суток*/

--сделать
update pg_index set indisvalid = true where indexrelid = 'test_pkey'::regclass




Будет ли нормально работать индекс или его надо епрестаивать в обязательном порядке?
...
Рейтинг: 0 / 0
отключить индекс.
    #39780678
grgdvo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
per,

вряд ли стоит возвращать флаг снова через update, индекс не перестроится, а значит в лучшем случае вы получите хрен знает какие результаты, в худшем - все упадет, потому что испорчена внутренняя целостность (грязный хак же!).
Сделайте REINDEX и целостность восстановите, и флаг вернете.
Но поддержу и повторюсь: править системный каталог не айс! Ну что стоит DROP/CREATE сделать?!
Получите больше надежности, не понадобится суперюзер.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / отключить индекс.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]