sql >> Database >  >> RDS >> Mysql

Mysql:optimalisatie van het vinden van superknooppunten in geneste setstructuur

Om geneste setquery's in MySQL te optimaliseren , moet u een SPATIAL . maken (R-Tree ) index op de setboxen:

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;

Zie dit artikel in mijn blog voor meer details:



  1. MySqlCommand-aanroepfunctie

  2. Is MySQL beter bestand tegen SQL-injectieaanvallen dan PostgreSQL (onder Perl/DBI)?

  3. FOUT 1396 (HY000):bewerking CREATE USER mislukt voor 'jack'@'localhost'

  4. Gebruik OBJECT_NAME() om de naam van een object op te halen uit zijn object_id in SQL Server