sql >> Databasteknik >  >> RDS >> Sqlserver

Optimerad SQL för trädstrukturer

Det beror verkligen på hur du ska komma åt trädet.

En smart teknik är att ge varje nod ett sträng-id, där förälderns id är en förutsägbar delsträng till barnet. Till exempel kan föräldern vara '01', och underordnade skulle vara '0100', '0101', '0102', etc. På så sätt kan du välja ett helt underträd från databasen på en gång med:

SELECT * FROM treedata WHERE id LIKE '0101%';

Eftersom kriteriet är en initial delsträng, skulle ett index i ID-kolumnen påskynda frågan.



  1. Felaktiga resultat med Merge Join

  2. 0 till 60 :Byte till indirekta kontrollpunkter

  3. Reducerar parametern postgresql.conf, åt gången

  4. SQL Server:Vad är skillnaden mellan CROSS JOIN och FULL OUTER JOIN?