phpbar.de logo

Mailinglisten-Archive

Re: Kaskadierend löschen unter MySQL
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Kaskadierend löschen unter MySQL



>> Iterativ wird es echt langsam bei so circa 100 Einträgen und 5 Ebenen, 
>> wenn die überwiegende Anzahl in den unteren Ebenen liegt.
> 
> ich würds doch iterativ machen, jeweils:
> 
> me(start)
>  select id from tabelle where parent = start
>  while (id) do
>   call me (id)
>   something
>  end while
> end me
> 
> bei einer pconnection müsste das ziemlich rassig laufen bei nur 100
> einträgen.. :)
> 
>> Eventuell auch eine bessere Adressierungsmöglichkeit?
> 
> wüsst ich nichts besseres... :/

Wenns nur darum geht, jeweils ganze Äste von der ersten Ebene nach der Root weg
zu löschen, emfiehlt es sich, ein Feld rootid neben der Parentid in den
eizelnen Zeilen mitzuführen ... dann kannst die Löschung mit "where rootid=xyz"
machen ... geht sicher schneller als der iterative ansatz, aber geht eben nur,
wenn der ganze Ast weg muss ... wenn du auf der 2. Ebene anfangen willst, dann
gehts gehts leider nicht ...

Die Frage ist aber m.E. auch, wie oft soll denn das passieren? Wenn du nicht
gerade jede Minute so ne Aktion machen willst, sollte es eigentlich keien
Performance-Probleme geben


Michael

-- 
Michael Bergbauer <michael.bergbauer_(at)_gmx.net>
Use your idle CPU cycles.
See http://www.distributed.net and win $ 1 000.
Visit our mud Geas at geas.franken.de Port 3333

---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive