2009-02-14

pg_reorg - кластеризация таблицы в онлайне !

Всем известно, что кластеризация таблицы по индексу может дать очень большой выигрыш за счет меньшего количества позиционирования головки диска. Особенно это хорошо для read-only таблиц, для которых раз сделанная кластеризация (clusterdb, CLUSTER …) сохраняет свои хорошие качества. Для изменяющихся данных приходится кластеризовать время от времени, что достаточно мучительно, ибо не только медленно, но и из-за лока на таблицу. И тут рулит pg_reorg, еще одно творение клевых парней из NTT. Вот краткая выжимка из документации

pg_reorg is an utility program to reorganize tables in PostgreSQL 
databases. Unlike clusterdb, it doesn't block any selections and 
updates during reorganization. You can choose one of the following 
methods to reorganize.

    * Online CLUSTER (ordered by cluster index)
    * Ordered by specified columns
    * Online VACUUM FULL (packing rows only)

NOTICE:

    * Only superusers can use the utility.
    * Target table must have PRIMARY KEY.
    * You'd better to do ANALYZE after pg_reorg is completed.

И без перевода понятно насколько это полезная утилита ! Узнал про это я из интересной статьи Cluster data, save cash.