sql >> Base de Datos >  >> RDS >> Mysql

Mysql:optimización de la búsqueda de supernodos en árboles de conjuntos anidados

Para optimizar consultas de conjuntos anidados en MySQL , debe crear un SPATIAL (R-Tree ) índice en los cuadros establecidos:

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;

Vea este artículo en mi blog para más detalles: