B-Tree इस तरह की क्वेरी के लिए अनुक्रमणिका बहुत मदद नहीं करेगी।
R-Tree के रूप में आपको क्या चाहिए अनुक्रमणिका और उस पर न्यूनतम बाउंडिंग समानांतर चतुर्भुज क्वेरी।
दुर्भाग्य से, MySQL R-Tree . का समर्थन नहीं करता है 3d . से ऊपर के इंडेक्स अंक, केवल 2d . हालांकि, आप X . के ऊपर एक इंडेक्स बना सकते हैं और Y एक साथ जो अधिक चयनात्मक होगा कि B-Tree . में से कोई भी X . पर अनुक्रमणिका और Y अकेला:
ALTER TABLE points ADD xy POINT;
UPDATE points
SET xy = Point(x, y);
ALTER TABLE points MODIFY xy POINT NOT NULL;
CREATE SPATIAL INDEX sx_points_xy ON points (xy);
SELECT *
FROM points
WHERE MBRContains(LineString(Point(100, 100), Point(200, 200), xy)
AND z BETWEEN 100 and 200
AND otherParameter > 10;
यह तभी संभव है जब आपकी तालिका MyISAM . हो ।