phpbar.de logo

Mailinglisten-Archive

AW: [php] 1.4 milli keys generieren?

AW: [php] 1.4 milli keys generieren?

Gloss Mathias php_(at)_phpcenter.de
Thu, 1 Aug 2002 14:35:53 +0200


Hallo,

> Von: 	Jens Vollmer[SMTP:voll-mailings_(at)_gmx.de]
>
> ich stehe vor dem problem, dass ich für eine produktpromo einen
> login-bereich erstellen muss,
> für den es 1.4 millionen keys gibt, welche nach einmaligem gebrauch
> ungültig werden.
> alles gut und schön.
>
> mein ansatz war (beim stand von 50 000 keys) diese per rand(); zu erzeugen
> und dann in 5 versch. tabellen
> zu schreiben und beim seiten aufruf den tabellennamen als 1. teil des keys
> zu benutzen. das würde
> die abfrage auf 10000 nummern reduzieren. allerdings will der kunde jetzt
> 1.4 mill. keys
> auf das produkt drucken und ich mache mir sorgen um die performance bei
> der abfrage.
>
> es gibt doch bestimmt bedeutend elegantere lösungen, als alle nummern aus
> der db zu holen, oder?
> oder mache ich mir zu viele gedanken um die zahlenmassen?
>
du machst dir zu wenig gedanken über die Funktion einer Datenbank.

Was spricht gegen folgendes:

tabelle keys
  char(32) (oder wie auch immer)  schluessel unique indiziert

In dieser Tabelle speicherst du deine Schlüssel.

Wenn du wissen willst, obs ein test_schlüssel existiert:

select * from keys where schluessel=test_schluessel;

und dann kannst du elegant über

mysql_numrows() rausfinden, wieviel ergebnisse es gegeben hat.
Das kann nur 0 oder 1 sein. (wegen unique).

Die Suche geht bei einem Index SEHR schnell, relativ egal wieviel
Einträge da drin sind. Das können auch 100 Mio Schlüssel sein ....


Grüße, Mathias


php::bar PHP Wiki   -   Listenarchive