Để tối ưu hóa các truy vấn tập hợp lồng nhau trong MySQL
, bạn nên tạo một SPATIAL
(R-Tree
) chỉ mục trên các hộp tập hợp:
ALTER TABLE projects ADD sets LINESTRING;
UPDATE projects
SET sets = LineString(Point(-1, lft), Point(1, rgt));
ALTER TABLE projects MODIFY sets LINESTRING NOT NULL;
CREATE SPATIAL INDEX sx_projects_sets ON projects (sets);
SELECT hp.*
FROM projects hp
WHERE MBRWithin(Point(0, 4), hp.sets)
ORDER BY
lft;
Xem bài viết này trong blog của tôi để biết thêm chi tiết: