POSTGRESQL VERİTABANI VACUUM
Postgresql veritabanında vacuum nedir nasıl kullanılıra değinecek olursak;
VACUUM
- ANALYZE ile birlikte sorgu planlayıcısının kullandığı istatistiklerin güncel olmasını sağlar silinmiş kayıtların temizlenmesini ve diskte yer açılmasını sağlar.
- Düzenli olarak yapılması gerekir
- Vacuum çalışırken standart sorguların hepsi yapılabilir,
- Sadece tablo özellikleri değiştiren işlemler yapılamaz
Birde vacuum full diye bir temizleme yöntemi var,
VACUUM FULL
- Kapsamlı vacuum işlemi, parametresiz kullanıldığında veritabanındaki her tabloya vacuum yapar
- Temizlenen disk alanını işletim sistemine geri verir
- VACUUM FULL, çalıştığı tabloya lock koyar, işlem tamamlanana kadar başka sorgular çalışamaz
Autovacuum ayarları postgresql.conf’tan yapılır
#autovacuum = on
#log_autovacuum_min_duration = -1
#autovacuum_max_workers = 3
#autovacuum_naptime = 1min
#autovacuum_vacuum_threshold = 50
#autovacuum_analyze_threshold = 50
#autovacuum_vacuum_scale_factor = 0.2
#autovacuum_analyze_scale_factor = 0.1
Örnek vacumm komutları;
postgres=# vacuum analyze verbose history;
postgres=# vacuum verbose history;
postgres=# vacuum full verbose history;