sql >> Databáze >  >> RDS >> Mysql

Mysql:Optimalizace hledání superuzlu ve stromu vnořených sad

Optimalizace dotazů vnořených sad v MySQL , měli byste vytvořit SPATIAL (R-Tree ) index na krabicích sady:

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;

Další podrobnosti najdete v tomto článku na mém blogu:



  1. Použití správného nebo raději nerovného operátoru v MySQL

  2. Jak rozdělit hodnoty jednoho sloupce na více hodnot sloupců?

  3. Jaký je nejlepší způsob přístupu k databázi z PHP?

  4. Jak aktualizovat databázi mysql bez opětovného načtení stránky