इस विषय पर मेरे पिछले सवाल, Postgres combining multiple Indexes से इसे जारी रखते हुए:Postgres GIST बनाम BTREE सूचकांक
मैं पर Postgres 9.2 (PostGIS के साथ) निम्न तालिका है
CREATE TABLE updates (
update_id character varying(50) NOT NULL,
coords geography(Point,4326) NOT NULL,
user_id character varying(50) NOT NULL,
created_at timestamp without time zone NOT NULL
);
और मैं निम्न क्वेरी चला रहा हूँ मेज पर:
select *
from updates
where ST_DWithin(coords, ST_MakePoint(-126.4, 45.32)::geography, 30000)
and user_id='3212312'
order by created_at desc
limit 60
तो यह देखते हुए कि, क्या सूचकांक मैं के लिए (coords + user_id), GIST या BTREE इस्तेमाल करना चाहिए?
CREATE INDEX ix_coords_user_id ON updates USING GIST (coords, user_id);
या
CREATE INDEX ix_coords_user_id ON updates (coords, user_id);
मैं पढ़ रहा था कि BTREE GIST तुलना में बेहतर प्रदर्शन है, लेकिन मैं के बाद से मैं PostGIS भूगोल क्षेत्र का उपयोग कर रहा GIST उपयोग करने के लिए मजबूर कर दिया ??
कृपया दोनों के लिए 'विश्लेषण व्याख्या करें' दिखाएं; http://explain.depesz.com/ पर योजनाओं को पेस्ट करें और यहां लिंक करें। –