Postgres'in yaşlanan eski kayıtları destekleyen herhangi bir özelliği var mı?
İki haftadan eski kayıtların (günlük olayları) otomatik olarak silindiği günlükleri sıralamak için Postgres'i kullanmak istiyorum.
Postgres'in yaşlanan eski kayıtları destekleyen herhangi bir özelliği var mı?
İki haftadan eski kayıtların (günlük olayları) otomatik olarak silindiği günlükleri sıralamak için Postgres'i kullanmak istiyorum.
Yanıtlar:
Zamana dayalı bir rejimde (bildiğim) satırları otomatik olarak silmek için yerleşik bir özellik yoktur.
Basit komutlar zamanlamak için günlük (karar verdiğiniz ) bir cron işi çalıştırabilir DELETE
veya amaç için pgAgent kullanabilirsiniz .
Yoksa kullanabilirsiniz bölümleme o haftalık bölümleri ile ana tablodan devralır , arama sağlar log
. Bu, silme işlemini çok ucuz hale getirir : sadece son iki haftayı saklayın ve eski bölümleri bırakın.
Ana tablo üzerinde sistem saatine göre INSERT'leri geçerli haftanın bölümüne yönlendiren bir RULE
veya a oluşturun TRIGGER
. Her zaman ana tabloya giriş yapın log
. Önceden alt tablolar oluşturun. Emin olmak için birkaç hafta önceden olun ve gelecekteki çocuk tablolarını ekleyen haftalık bir cron işi çalıştırın ...
Orada kılavuzda kod örnekleri .
Otomatik olarak tablolar oluşturan bir plpgsql fonksiyonu ile ilgili cevap:
İlgili çözüm RULE
INSERT'leri yönlendirmek için bir yeniden oluşturur. Bir tetikleyici fonksiyon mevcut bölüme dinamik olarak yazabilir ...