मेरे पास ओस्मोसिस स्कीमा का उपयोग करके नीदरलैंड के लिए पोस्टग्रिज डेटाबेस (PostgreSQL 8.3 / PostGIS 1.3.3) में लोड किए गए OpenStreetMap डेटा है । इसका मतलब यह है कि सभी टैग एक स्टोर फ़ील्ड में संग्रहीत हैं । जीआईएसटी सूचकांक के अलावा जो ऑस्मोसिस ज्यामिति क्षेत्र पर बनाता है, मैंने टैग क्षेत्र पर एक अतिरिक्त जीआईएसटी सूचकांक बनाया।
टैग क्षेत्र पर एक स्थानिक बाधा और एक बाधा दोनों का उपयोग करके क्वेरी करने की कोशिश कर रहा हूं, मुझे लगता है कि यह मेरी तुलना में धीमी है। इस तरह एक क्वेरी:
SELECT n.geom,n.tags,n.tstamp,u.name FROM nodes AS n
INNER JOIN users AS u ON n.user_id = u.id
WHERE tags->'man_made'='surveillance'
AND ST_Within(geom, ST_GeomFromText('POLYGON((4.0 52.0,5.0 52.0,5.0 53.0,4.0 53.0,4.0 52.0))',4326));
78 रिकॉर्ड वापस करने के लिए 22 सेकंड लगते हैं।
इस तालिका में लगभग 53 मिलियन रिकॉर्ड हैं।
क्या इसको गति देने का एक तरीका है? मैंने सुना है कि PostgreSQL 9 में hstore को काफी बेहतर तरीके से लागू किया गया है, क्या यह मदद को उन्नत करेगा?