ฉันมีตารางเชิงพื้นที่ในฐานข้อมูล PostgreSQL / PostGIS ทุกแถวในนั้นหมายถึงรูปหลายเหลี่ยม มันเป็นรูปแบบดังต่อไปนี้:
+----+--------+
|gid | way |
+----+--------+
|241 | 01030..|
คอลัมน์รูปทรงเรขาคณิตคือ "วิธี" ซึ่งมีรูปทรงเรขาคณิตสำหรับรูปหลายเหลี่ยม ใน WKT คือ: POLYGON (('.... ')) ฉันกำลังทำแบบสอบถาม ST_Contains จำนวนมากในตารางนี้เพื่อทดสอบว่ามีรูปหลายเหลี่ยมสองอันอยู่ในกันและกันหรือไม่เช่น:
Select ST_Contains(a.way, b.way) From table AS a, table AS b Where a.gid = 15 And b.gid = 16
ฉันสงสัยว่าจะเพิ่มความเร็วข้อความค้นหานี้อย่างไรและเพิ่มดัชนีเชิงพื้นที่ในตาราง:
CREATE INDEX table_way_gist ON table USING gist(way);
แต่ที่จริงฉันไม่เห็นความเร็ว ฉันสร้างดัชนีหลังจากที่ฉันเติมตารางด้วยรูปหลายเหลี่ยมทั้งหมดก่อนที่ฉันจะทำแบบสอบถาม ST_Contains ควรเพิ่มดัชนีก่อนที่จะเติมตารางหรือไม่? มีข้อกำหนดพิเศษในตารางเพื่อทำงานกับดัชนีหรือไม่ เส้นโครง (srid) ของวิธีคอลัมน์เรขาคณิตตั้งค่าเป็น 900913
ฉันใช้: psql (PostgreSQL) 9.1.4 / POSTGIS = "1.5.3"