Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql:Оптимизиране на намирането на супер възел във вложено дърво на набори

За оптимизиране на вложени заявки за набор в MySQL , трябва да създадете SPATIAL (R-Tree ) индекс на зададените полета:

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;

Вижте тази статия в моя блог за повече подробности:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете възрастта на човек в MySQL

  2. Искам да добавя 30 дни към реда за дата на mysql

  3. Как да тествам MySQL транзакции?

  4. mysql.sock не е създаден OSX

  5. CakePHP:Как мога да използвам операция HAVING при изграждане на заявки с метод find?