Jakob Voss schrieb:
Magnus Manske schrieb:
Das gilt auch für Unterkategorien (und Unter-Unter-Unter...kategorien:-)!
Das bezweifle ich. Zumindest sollte es in der Praxis eine Grenze für die JOIN-Kette geben.
Kein JOIN; iterative Aufrufe von "WHERE .. IN". Die Anzahl der Aufrufe entspricht der Höhe des höchsten Kategorie-Baums der gegebenen Artikel (in diesem Fall: die letzten geänderten Artikel). Schätzungen (nicht nur von mir) gehen im Durchschnitt von 6 aus. "IN" auf einen Index angewandt ist an sich nicht sehr kostspielig. Es könnte allerdings sein, dass es hier die "Masse" der Aufrufe macht.
Problem: Ich weiss nicht, wie stark diese Funktion die Datenbank-Server belasten wird. Vermutlich wird es sich in Grenzen halten, aber die Herren der Server sind da eher vorsichtig.
Hast du deinen Code mal getestet und Laufzeitüberlegungen angelegt? Wenn die Funktion skaliert, würde ich gerne mal in den Code einen Blick werfen, weil meine Auswertungen der Kategorienstruktur an ihre Grenzen stoßen. Ich glaube aber eher, dass es nicht so ganz skaliert.
Ich könnte simulieren, wie lange ein Aufruf auf meiner Maschine (MySQL & Webserver & diverse andere Programme) dauert. Nur, dass das nicht viel über die Situation im Wikipedia-Netz aussagen würde. Daher wäre ich dafür, es anzuschalten (z.B. nur hier auf de.wikipedia, als repräsentativen Testfall), und die Serverlast im Auge zu behalten. Wenn die nach einer Woche nicht geschmolzen sind, ist es sicher :-)
Falls die Leistung gefährlich absackt, einfach wieder abschalten...
Magnus