Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Mysql:Otimizando a localização de super-nós na árvore de conjuntos aninhados


Para otimizar consultas de conjuntos aninhados em MySQL , você deve criar um SPATIAL (R-Tree ) índice nos set boxes:
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;

Veja este artigo no meu blog para mais detalhes: