2016-01-23 16 views
7

Wir haben eine MySQL-Tabelle, die bald von IDs ausgeht (die primäre ID ist eine 32-Bit-Ganzzahl und die maximale ID ist bereits etwa 1,5 Milliarden). Was ist der beste Weg, um dieses Problem zu beheben? Ändern Sie den ID-Typ zu 64-Bit ist eine Option, aber das würde die Datenbank für zu lange herunterfahren, weil die Tabelle Milliarden von Zeilen hat.Mysql Tabelle läuft aus IDs

+0

Was ist der tatsächliche Datentyp dieser Spalte in Ihrem Schema verwendet – RiggsFolly

+0

Lassen Sie uns darüber reden, was Sie tun, um die IDs ausgehen. Hast du 1,5 Milliarden Zeilen? Oder sind die meisten der IDs gelöscht? Verbrannt? Sonst verloren? Es kann möglich sein, den Verbrauch zu verlangsamen, so dass Sie nicht ausgehen. –

Antwort

3

Alle Versionen von MYSQL (32-Bit und 64-Bit) verwenden ein 8-Byte-Feld für eine als BIGINT definierte Spalte.

ändern So ist die Spalte

Check the documentation

+0

Wie in meiner Frage erwähnt, würde die Änderung der Spaltenart einer so großen Tabelle eine sehr lange Ausfallzeit für unseren Datenbankserver erfordern. – Pinch

+0

Nun, es sieht nicht so aus, als hätten Sie die Möglichkeit, nichts zu tun. – RiggsFolly

3

dann BIGINT werden versuchen, die Art des Feldes zu ändern. Versuchen Sie einen Typ mit einem großen Bereich wie "BIGINT".

Verwandte Themen