[MySQL] Welche Spaltenart für "ID" Felder?

preko

Erfahrenes Mitglied
Hi,

zwei Fragen an Euch:

1. Welche Spaltenart nehme ich für die "ID" Felder, die mit Auto Increment belegt sind (z. B. INT, BIGINT, etc.)?

2. Was passiert, wenn das Limit erreicht wird (so weit ich weiß, kann man INT mit 255 maximal angeben). Was passiert, wenn irgendwann der "Zahlenrahmen" ausgeschöpft ist? Kommt dann eine Fehlermeldung, werden freigewordene Zahlen (z. B. durch löschen von ID´s) wieder verwendet, oder was passiert dann? :confused:


Besten Dank und
viele Grüße,
preko
 
Hi,

eine kleine Suche bei Google hätte unter anderem dieses Egebnis gebracht.
Darin kannst du sehen, das der Datentyp "int" 4 Bytes belegt, also Zahlen bis (im Falle von IDs) 4,3 Mio erlaubt.
Solltest du doch mehr Datensätze erwarten, dann ist es am Beste wenn du von vorn herein Bigint nutzt.

ich hoffe, dass hat die weitergeholfen.

PS: Das Maximum von 255 gilt für Tinyint
 
Zu 1:
Beliebige Ganzzahl-Typen, je nach erwarteter Anzahl Datensätze

Zu 2:
Numeric Types
INT UNSIGNED = 2 hoch 32 - 1 = 4.294.967.295 Datensätze
BIGINT UNSIGNED = 2 hoch 64 -1 = 18.446.744.073.709.551.615 Datensätze

http://dev.mysql.com/doc/mysql/en/example-auto-increment.html#c1166 hat gesagt.:
Just in case there's any question, the
AUTO_INCREMENT field /DOES NOT WRAP/. Once you
hit the limit for the field size, INSERTs generate
an error. (As per Jeremy Cole)
Gruß hpvw
 
Hi,

vielen Dank für die prompte Info.

@ niggo:

Ich muß gestehen, dass mir die Tabelle, auf die Du verweist im prinzip vorgelegen hat. Hatte nur gerade einen senilen Schub. ;)

Was jedoch noch wichtiger war, ist die Info von hpvw, dass nach Erreichen des Limits eine Fehlermeldung herausgegeben wird.

Nur mal so: was macht jemand mit einem Onlineshop, wie z.B. Amazon. Die haben doch täglich zig tausend (oder noch mehr) Bestellungen, etc.. Da muß doch das Limit irgendwann erreicht werden!

Was macht man in so einem Falle? Hat jemand eine Idee? :confused:


Beste Grüße,
preko
 
Hier wird von einem Jahresumsatz unter 7 Milliarden Dollar gemutmaßt. Selbst wenn eine Bestellung im Mittel nur 1 Dollar ausmachen würde, könnte Amazon mit einem BIGINT UNSIGNED 2.635.249.153 (über 2 Milliarden) Jahre weiter Geschäfte machen, ohne Probleme mit der Datenbank zu bekommen.
Anwendungen, bei denen man an die Grenzen eines BIGINT UNSIGNED halte ich für höchst unwahrscheinlich, insbesondere im Geschäftsleben.

Gruß hpvw
 
@hpvw:

macht Sinn wenn man es so betrachtet.

Nochmals besten Dank und


viele Grüße,
preko
 

Neue Beiträge

Zurück