Eu executei este comando:
cluster verbose address using address_locality_lookup;
E obteve este resultado:
INFO: clustering "dba.address" using sequential scan and sort
INFO: "address": found 0 removable, 29323623 nonremovable row versions in 1139047 pages
DETAIL: 0 dead row versions cannot be removed yet.
CPU 26.00s/8286.70u sec elapsed 8342.01 sec.
CLUSTER
Time: 9366585.421 ms
Isso indica que o clustering foi bem-sucedido (ou seja, todas as linhas agora estão na ordem indicada pelo address_locality_lookup
índice)?
O que 'removível' e 'não removível' indicam?
Sim, isso significa que foi bem-sucedido. Normalmente (quando as configurações do cliente são assim), você recebe de volta um eco do comando executado, como
CLUSTER
neste caso.Nas versões mais recentes do PostgreSQL,
CLUSTER
eVACUUM FULL
fazem basicamente o mesmo (na verdade, que eu saiba, eles compartilham o mesmo código), a única diferença é a ordem do primeiro. O que você vê é a saída típica dos diferentesVACUUM
comandos, descrevendo que não havia linhas obsoletas em sua tabela.Podem ser versões antigas de algumas linhas existentes, substituídas por uma
UPDATE
ou excluídas, que em ambos os casos não foram removidas por umaVACUUM
operação anterior. Estes são marcados como 'removíveis', ao contrário de alguns que ainda podem ser referenciados por algumas transações abertas. Quando as transações forem fechadas, elas também serão removíveis.