2011-04-20 21 views
6

İçinde PostGIS geometrileri ile milyonlarca satır içeren bir tablonuz var. Yapmak istediğimiz sorgu: sınırlayıcı bir geometriye giren en yeni girişler hangileridir? Bu sorgudaki sorun, genellikle sınırlayıcı kutunun (yarıçapı yaklaşık 5km olan) eşleşecek çok sayıda öğeye sahip olduğumuzdur ve Postgres daha sonra, sınırlayıcı kutunun içindeki tüm iade edilen öğeleri yeniden kontrol etmek zorunda kalacaktır. kendi zaman damgası, sonra sırala ve en son N döndü.Uzamsal + zaman parametreleri için Postgresql bileşik indeksi

İhtiyacımız olan şey, hem GIST uzamsal dizinini hem de zaman damgasını hesaba katan bir (bileşik?) indeksi gibi hissediyor. Böyle bir şey mümkün mü? CREATE INDEX adımında çeşitli kombinasyonları denedim ve şu ana kadar hiçbir şey işe yaramadı.

+2

Bu kabul edilen cevap sizin için çalışıyor mu? Zaman damgasının ikinci dizini gibi görünmeyecek gibi görünüyor. – jlmfao

cevap

0

Zaman damgası sütununda iki dizin, bir uzamsal ve ikincisi yapmayı tercih ederim. PostgreSQL, dizinleri oldukça güzel bir şekilde birleştirebilir ve bulunan satırları tekrar kontrol etmenize gerek yoktur. Satırları geometride almak ve diğer dizini kullanarak sıralamak için dizinler kullanabilir.

+0

Dizinlerin birlikte kullanılmasının uygun olup olmadığını nasıl anlarım? Bu cevaba inanmıyorum. –

+1

Sorgu planını kontrol etmek için açıklamayı (veya analizi açıklayın) kullanın. Kontrol edebileceklerine inanman gereken bir şey yok. –

+0

Teşekkürler! Dener ve iyi çalışırsa oy vereceğim. "Ben inanıyorum" dediğimde, özel olarak geoindex ile birlikte ayrılmış dizinler oluşturursam, MySQL iyi çalışmadığı için. –