понимаю так. Станет индекс больше по размеру. То есть, я не умею делать процедуры в pg вообще, код нужен образно такой
create table testind (id serial, test int);
FOR i IN 1..65000 LOOP
INSERT INTO testind(test) values (i);
END LOOP;
create index on testind(test);
узнать размер индекса
FOR i IN 1..65000 LOOP
if ( (i % 2) == 0) delete from testind where id = i;
INSERT INTO testind(test) values (i);
END LOOP;
узнать размер индекса
по моему мнению второй индекс будет 2 и более раз больше, чем первый по размеру. А автовакуум будет очень слабо помогать уменьшению размера индекса. Я не прав?
Если в одной транзакцыи -- то второй индэкс будет вдвое большэ по размеру, как и сама вторая таблица (в смысле -- основной её heap). Если не в одной -- то как повезёт, но скорее такжэ. Но всё это не имеет отношэния к балансировке индэкса.
Впрочем, нет, почему вдвое -- если в полтора раза.
Обсуждают сегодня