Обычно вам вообще не нужно об этом беспокоиться.
Однако, если произошло массовое удаление или обновление, или устойчивая частота изменений была настолько высока, что автоочистка не могла поддерживать,у вас может получиться сильно раздутый индекс.
Инструмент для определения этого идентификатора расширения pgstattuple
:
CREATE EXTENSION pgstattuple;
Затем вы можете исследовать индексный расклад следующим образом:
SELECT * FROM pgstatindex('spatial_ref_sys_pkey');
-[ RECORD 1 ]------+-------
version | 2
tree_level | 1
index_size | 196608
root_block_no | 3
internal_pages | 1
leaf_pages | 22
empty_pages | 0
deleted_pages | 0
avg_leaf_density | 64.48
leaf_fragmentation | 13.64
Этот индекс находится в отличной форме (никогда не использовался): он имеет только 14% размаха.
Помните, что индексы по умолчанию создаются с fillfactor
, равным 90, то есть блоки индексане заполнены более чем на 90% к INSERT
.
Трудно сказать, когда индекс раздут, но если leaf_fragmentation
превышает 50-60, это не так красиво.
Чтобы реорганизовать индекс, используйте REINDEX
.