phpbar.de logo

Mailinglisten-Archive

[php] mysql_insert_id

[php] mysql_insert_id

Alexander Meurer php_(at)_phpcenter.de
Mon, 14 Oct 2002 14:55:37 +0200


Hallo,

> bigint geht ohne vorzeichen von 0 - 18.446.744.073.709.551.617
> und mit von -9.223.372.036.854.775.808 bis +9.223.372.036.854.775.807
>
> int kann ohne von 0 bist 4.294.967.295 und mit von -2.147.483.648 bis
> +2.147.483.647

vielen Dank für die Aufklärung, aber mit Integerbereichen bin ich
durchaus vertraut.

Die Frage bezog sich auf folgendes Rechenbeispiel:
Nehmen wir eine Tabelle mit einer ID-Spalte an, in welche rund um die
Uhr jede Minute 100 Datensätze geschrieben werden.

Das sind dann:
100 DS pro Minute,
6000 DS pro Stunde,
144000 DS pro Tag,
52560000 DS pro Jahr.

Daraus folgt:
2.147.483.647 / 52.560.000 = 40.86 Jahre bis zum Überlauf oder
4.294.967.295 / 52.560.000 = 81.71 Jahre bis zum Überlauf.

Man beachte, bei 50 Mio. DS macht ein Sprung von 4 Byte auf 8 Byte ein
Volumen von 4 x 50 Mio. = 200 Mio. Byte oder knapp 200 MB aus.

Ich bin mir natürlich bewußt, daß man in ca. 40 Jahren noch viel mehr
über 200MB lachen wird, als heute (bei den Plattengrößen).
Allerdings darf man (heute noch) nicht den Netztraffic außer Acht lassen
und die Tatsache, daß die ID-Spalten in anderen Tabellen heftig als
Fremdschlüssel die gleiche Größe haben müssen.
Hat eine Tabelle somit fünf Fremdschlüssel (ich find' das nicht zu hoch
gegriffen), dann verschenkt man 1GB (in Worten: ein Gigabyte) für den
Vorteil, daß das heute programmierte System in 80 Jahren noch laufen
wird. *grübel*

Ciao
   Alex


php::bar PHP Wiki   -   Listenarchive