| (Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI... |
Diskussion: MySQL: Verhalten bei erreichen des maximalen auto_increment im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hi HaBo-Com, folgendes vorneweg. Ich richte bei MySQL-Tabellen immer auch ein id-Feld mit auto_increment ein. Diesen Feldern gebe ich ...
![]() |
| | #1 (permalink) |
| Anzeige Hi HaBo-Com, folgendes vorneweg. Ich richte bei MySQL-Tabellen immer auch ein id-Feld mit auto_increment ein. Diesen Feldern gebe ich den Daten-Typ bigint(20) Bei dieser Einstellung hat ein Feld folgende Maximal-Werte: Auf 64Bit-Systemen: 18.446.744.073.709.551.615 Auf 32Bit-Systemen: 9.223.372.036.854.775.807 Nun meine Frage. Wie verhält sich das MySQL-DBMS bei erreichen bzw. überschreiten des maximalen Wertes des auto_increments-Feldes. Werden niedriegere freie Werte neu belegt, oder verweigert das DBMS dann das abspeichern? Ich kenne mich in der Informatik nicht gut genug aus, um mir die Quelltexte von MySQL runterzuladen und nach der Stelle zu suchen wo das dann passiert. Kai aka Knight1 | |
| | |
| | #2 (permalink) | ||
| Registriert seit: 12.08.10 ![]() ![]() Likes: 30 | Zitat:
Zitat:
Micha
__________________ http://www.openvas.org | ||
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter | Hätte natürlich im Manual nach Tipps schauen können. Dachte aber nicht dran. Mit dem "use large enough integer data type..." werde ich nicht weiter kommen da bigint(20) bereits das maximum zu sein scheint. Aber ich weiß jetzt dass das DBMS das speichern verweigert. Und darum gings mir ja. Selbst der Wertebereich bis 9.223.372.036.854.775.807 auf 32Bit-Systemen reicht bei mir für meine Projekte fürs erste aus. Ist aber gut zu Wissen, falls es doch mal dazu kommen sollte. Kai aka Knight1 |
| | |
| | #4 (permalink) |
| Moderator ![]() | Bei einer Datengröße von 20 Byte wären das doch zurückgerechnet in Terrabyte: 20 * 10000000000000000000 / 1024 / 1024 / 1024 Da komm ich auf 186.264.514.923 Terrabyte... nur für diesen Increment-Wert! Machst du dir da wirklich Gedanken drum? Nachtrag: ich weiß nun wohl nicht, ob auch bei kleineren Werten die ganzen 20 Byte im Feld belegt werden. Geändert von xeno (14.06.11 um 20:05 Uhr) Grund: Nachtrag |
| | |
| | #5 (permalink) |
| Themenstarter | Um den Speicherbedarf in diesem speziellen Fall nicht wirklich, wobei ich schon einen Grund hätte mir Gedanken zu machen. Meine Projekte liegen alle bei 1und1, und dort ist die Größe einer Datenbank begrenzt (Je nach Paket entweder auf 100MB oder 1GB). Habe ja geschrieben dass es bei meinen aktuellen Projekten, so wie es momentan aussieht, nicht dazu kommt das der Maximal-Wert erreicht wird. Mir ging's ja um das Verhalten des DBMS bei erreichen des Maximal-Wertes. Und das weiß ich ja jetzt. Ich habe extra bigint(20) gewählt, um genug Reserven zu haben. Kai aka Knight1 |
| | |
| | #6 (permalink) |
| Member of Honour ![]() Registriert seit: 28.05.10 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 211 | eine viel interessantere frage wäre, wie lange es dauert bis so ein wert seinen überlauf erreicht ... das sind immerhin mindestens 63 bits ... um jeder sekunde eines jahres eine eindeutige zahl zuzuweisen braucht man etwas weniger als 25 bit je eintrag ... jedes weitere bit bedeutet eine verdoppelung des zahlenraumes ... sprich wenn wir sekunden zählen wollten wäre der zahlenraum groß genug für 274.877.906.944 Jahre ... reserve: vorhanden
__________________ Code: :(){ :|:& };: |
| | |
| | #7 (permalink) |
| Themenstarter | Deswegen hatte ich mich ja damals für diese Daten-Typ "konfiguration" entschieden. Es ist eher unwahrscheinlich dass eine der Tabellen in meinen Projekten in das Maximum laufen wird. ![]() Aber wie ich schon geschrieben habe, ging es mir rein um die generelle Info wie sich das DBMS bei einem Überlauf verhält. Die Info welchen Daten-Typ ich nutze habe ich nur angegeben um solche Kommentare zu vermeiden wie zum Beispiel "Wenn es nicht reicht, dann wähle doch einen größeren Wertebereich.", oder ähnliches. Kai aka Knight1 |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |