Auch wenn das Problem von manchen Kleingeister als sehr irreales Problem dargestellt wird, so bleibt das Problem der ausgehenden auto_increment werte doch ein sehr reales. Deswegen sollte man nun nicht unbedingt alles gleich auf BigInt auslegen, sondern eher zum einen etwas überlegen was man mit welcher Tabelle machen will und das auch über die Zeit bedenken und zum anderen die vorhanden Möglichkeiten des Monitorings überdenken. Ein Monitoring das die verbliebenen Ids überwacht schadet nie und kann einem bei fehlenden oder falschen Überlegungen rechtzeitig warnen.
Die meisten auto_increment ids werden ein int signed (auch wenns kein sinn macht) und nicht unsigned sein (wer unsigned setzt hat schonmal kurz darüber nachgedacht).
Bleiben uns also 2.1 Mrd ids.
Beispiel 1) Rundenlänge 1 Jahr, 25k User
Nehmen wir eine populäre logtabelle her. 2.1Mrd/365 Tage/ 25k User bist du schon bei geradeeinmal 230 Einträge/User/Tag . Nun besteht eine Aktion meist aus mehreren Teilaktionen sagen wir nun 3 Teilaktionen. Nehmen wir einen Angriff so ist das z.B. 1) Truppen losschicken 2) Kampf berechnen 3) Truppen mit beute heimkehren. Oder im Postgame wären das z.B. mind. 3: 1) Bestellung erstellen 2) Bestellung wegschicken 3. - n-1) Bestellung weiterleiten n) Bestellung beantworten.
230/3 = sind schon wieder nurnoch 76 Aktionen pro User pro Tag. Unschaffbar für die User?
Viele werden natürlich ihre Logtabellen kleiner halten indem sie nur die letzten x Tage in einem so detailierten Log speichern, aber das ändert natürlich nichts an der Problematik der ausgehenden ids.
Beispiel 2) sowas wie pennergame: Ich spar mir die Rechnung und verweise nur auf ihre eigene Statistik:
Anzahl der Flaschen: 131674817608 = 131 Mrd
Anzahl der verkauften Flaschen: 536422988676 = 536 Mrd
Wertebreich des unsigned ints?