Přeskočit obsah

Údržba PostgreSQL databáze

Pro optimální výkon databáze je třeba zajistit její pravidelnou údržbu. PostgreSQL interně funguje tak, že při aktualizaci záznamu v tabulce zůstane původní záznam stále uchován a je interně deaktivován a odstraněn až následně při spuštění procesu vacuum. To samé se pochopitelně děje po příkazu delete. Množství dat o která tabulka/index narostly o tato nepotřebná data se označuje jako BLOAT. Pokud je množství těchto dat více jak 5-7násobek původní velikosti, znamená to u tabulek výrazný propad ve výkonu.

Databáze obsahuje funkcionalitu autovacuum - tato funkcionalita umožňuje průběžne spouštet vacuum nad tabulkami kde je to třeba. Ve výchozím nastavení obvykle autovacuum problém pouze oddálí a je potřeba po nějaké době spustit velkou údržbu databáze - příkazem VACUUM FULL. Autovacuum je možné nastavit agresivněji, tím je možné interval údržby prodloužit, ale za cenu průběžně větší zátěže databáze. Parametry autovacuum si může zákazník customizovat pro každou tabulku individuálně.

U menších databází ( s tabulkami maximálně stovky MB ) je možné vytvořit cronjob, který pravidelně provede údržbu - pak je databáze prakticky bezobslužná. U větších projektů je vhodné dělat tyto údržbové práce v servisním okně - při údržbě je tabulka zamknuta a aplikace využívající databázi nebude fungovat korektně.

Údržba se provádí spuštěním příkazů VACUUM FULL a REINDEX. Tyto příkazy může spouštět i zákazník a zajistit si tak údržbu ve vlastní režii. Údržbu mohou samozřejmě provést naši administrátoři.

Stav databáze průběžně monitorujeme a pokud je třeba spustit údržbu, bude zákazníka kontaktovat naše technická podpora.