การเพิ่มประสิทธิภาพการสืบค้นฐานข้อมูล Postgis
ฉันมีชุด rasters ในรูปแบบ DTED ซึ่งฉันโหลดลงในฐานข้อมูล PostGIS โดยใช้เครื่องมือบรรทัดคำสั่ง raster2pgsql แรสเตอร์แต่ละตัวจะถูกจัดเก็บไว้ในแถวและอธิบายด้วยค่าลบและค่าของรูปแบบแรสเตอร์ ตอนนี้ฉันต้องการสร้างฟังก์ชั่นฐานข้อมูลที่ใช้ลองจิจูดและละติจูดของจุดและส่งกลับค่าของพิกเซลที่สอดคล้องกับจุดนี้ ปัญหาที่ฉันมีคือมันใช้เวลาค่อนข้างมากในการทำเช่นนั้น (3-4 วินาที) เพราะฐานข้อมูลทำงานบนบอร์ด Odroid ฉันรู้ว่าชุดข้อมูลที่ฉันดำเนินการค่อนข้างใหญ่ (rasters ครอบคลุมพื้นที่ทั้งหมดในสหราชอาณาจักร) แต่เนื่องจากฉันไม่คุ้นเคยกับ PostgreSQL และ PostGIS มากฉันสงสัยว่ามันสามารถทำได้เร็วกว่า นี่คือสิ่งที่ฉันทำไปแล้ว: SELECT ST_Value(rast, ST_GeomFromText(CONCAT('POINT(', $1, ' ', $2, ')'), 4326)) FROM ( SELECT * FROM rasters WHERE rast && ST_GeomFromText(CONCAT('POINT(', $1, ' ', $2, ')'), 4326) ) …