bog schrieb:
...minimum 30 zeichen pro eintrag, oder ~120KB an literalen, die fuer jeden aufruf von php geparsed werden muessen. waehrenddessen sind rdbms stark optimiert und cachen ganz viel. denke die persistente sql-variante gewinnt da performancemaessig schon sehr deutlich.
Würde ich fast bezweifeln, selbst persistent hast du den Overhead vom Netzwerk, und da kommts halt drauf an wie gut/schlecht die Datenbank angebunden ist. Cache hin oder her, imho ist das array da fünf mal geparsed und linear durchsucht eh du die Antwort von der Db hast, und da hast du dir noch keine Gedanken um eine effiziente Ablage im array gemacht(wenn ich Blöcke hab kann ich zb den Block als Schlüssel ins Array packen ala 192.168.1.* und dann drei Abfragen auf 192.*, 192.168.* Und 192.168.1.* starten, dann hätte man nur noch 3 Einträge vom array angefasst statt 4000, kommt natürlich auf die vorliegenden Daten an).
_Wenn_ es jetzt wirklich eine Website mit viel Traffic währe, würde der Kollege kaum hier fragen, ich denke das wird sich eh in einem Bereich bewegen, in dem beide Lösungen absolut ausreichen. Für High Performance Belange müsste man sich Imho eh mal die halbe Stunde nehmen und beides benchen, aber ich glaube wirklich dass ein array mit 4000 Einträgen fixer geparsed und durchsucht ist, als du bei 10gbit Netzwerk auch nur rechnerisch die Antwort hättest, also Anfrage hin, Dienst ansprechen, bissl Db Gerödel, Antwort zurück. Das summiert sich immer ganz schön(mal abgesehen von ausgelasteten Datenbankservern und dass du mit der Php Lösung einen potentiellen Flaschenhals bei jedem Request entfernst).
Letztendlich hängt es (glaube ich) an der Wartbarkeit: wenn ich, um die Ip Bereiche einzupflegen, in Php 30 Sekunden weniger brauche, würde ich das machen, sonst die Db Lösung.
Und mal davon ab: gesetzt dem Fall der Te arbeitet mit Sessions und prüft das nur einmalig ab, scheißt sich das bei einer normalen Website gegenüber den heftigeren Abfragen sowas von weg, dass wie hier Mikrooptimierungen diskutieren für eine Seite, auf der ganz andere Kaliber von Suchen laufen. Schöne hypothetische Diskussion, aber sinnfrei (so in der Art
)