Ben bir PostgreSQL veritabanına konuyor hava modeli veri büyük miktarda var. Makine 8 çekirdeğe ve 16 GB RAM'e sahiptir. PostGIS 2.1 ile PostgreSQL 9.3 kullanıyorum. Her tablonun farklı hava durumu verileri (sıcaklık, çiy noktası, rüzgar vb.) Olacaktır. Her tablonun 6-7 sütunu olacaktır: enlem, boylam, nokta geometrisi, yükseklik, modelin ilgili olduğu tarih ve 1-2 veri değeri. Veriler öncelikle bir sınırlama kutusu için zamana ve yüksekliğe göre sorgulanacaktır. Tablo başına yaklaşık 145.757.360 satır olacaktır (şu andan daha eski veriler artık alakalı değildir silinecektir). Kabaca dizin boyutunu yaklaşık 10 GB olacak şekilde tahmin ediyorum. (Bu, 52 bayt veri artı satır başına 23 bayt ek yüktür). Yeni model verileri kullanıma sunuldukça veriler düzenli olarak güncellenecek / eklenecektir. Not:
Bu iki plana bakıyorum:
- Nokta geometrisi için ek bir indeksle (tarih, yükseklik) endeksleyin ve kümeleyin. Eski satırları silen, vakum / analiz çalıştıran ve kümeleri yeniden düzenleyen düzenli bir cron işi çalıştırın.
- Tarih saatine göre bölümleme ve ardından geometri üzerinde bir dizinle tablo başına yükseklik ile küme ve dizin. İleriye yeni tablolar eklemek ve eski tabloları bırakmak için düzenli bir cron işi çalıştırın.
Daha ileri,
- Yani, bir masa bırakmanın çok daha verimli, silme ve vakumlama olduğunu biliyorum. Aksi takdirde performans artışı görür müyüm?
- Alakasız olarak silinene kadar tüm tablolar eşit olarak güncellendiğinde ve seçildiğinde bölümler uygun mudur?
Verileri iletirken seçimler kümelenmiş dizinden daha hızlı olur mu? Aynı anda birden fazla istek yapılıyorsa cevap değişir mi?
Teşekkür ederim. Umarım gerekli tüm verileri koyarım. Değilse bana bildirin ve ben ekleyeceğim.
xmin
yaxmax
, vb bir özellik var olabilir büyük bir anlaşma daha uygun bu gibi şeyler yapacaktır minmax indeksleri denilen muhtemelen sizi heyecanlandıracak 9.4, dönüştürebilmek.