Visa ett inlägg
Oläst 2005-06-18, 21:12 #8
Tvartom Tvartom är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 86
Tvartom Tvartom är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 86
Citat:
Originally posted by Robert@Jun 18 2005, 12:56
Du kan alltid spara lite querytid genom att spara info om antalet barn på raden då denna ändras väldigt sällan.
Ja, spara querytid är just vad jag försöker göra nu...

Jag håller på att testa systemet och har fyllt upp 12000 poster i trädet (Hoppas på att det ska klara mer..)


Räkna ut antalet barn påverkar inte tiden nämvärt, utan kravarv är den tunga posten.

Att plocka ut 100 poster kan ta upp mot 8 sekunder som det är just nu, så något måste göras!

Så därför tänkte som jag Robert föreslår, spara kravarv som ett extra fält. (som cache)

Frågan är nu, hur skriver man uppdateringen av detta fält?
Försökte med:
Kod:
SQL:
UPDATE t1 AS tree SET kravarv = (SELECT BIT_OR(krav) FROM t1 AS path WHERE path.uppe <= tree.uppe AND path.nere >= tree.nere)
Vilket inte uppskattades av mysql...
Måste man köra det via en tillfällig tabell eller finns det någon annan lösning?

Fråga 2 är, kan jag göra något för att snabba upp kravarv-queryn?
Kod:
SELECT BIT_OR(krav) AS kravarv FROM t1 AS path WHERE path.uppe <= $uppe AND path.nere >= $nere)
Jag har försökt med att lägga index på uppe och nere, utan nämvärt resultat.
(Även testat på arv...)

/ Lasse
Tvartom är inte uppkopplad   Svara med citatSvara med citat