2016-01-23 19 views
7

Abbiamo una tabella mysql che sta esaurendo presto gli id ​​(l'id principale è un numero intero a 32 bit e l'id massimo è già circa 1,5 miliardi). Qual è il modo migliore per risolvere questo problema? Modificare il tipo di id a 64 bit è un'opzione, ma ciò causerebbe il down down del database troppo a lungo perché la tabella ha miliardi di righe.La tabella Mysql sta esaurendo i codici

+0

Qual è il tipo di dati effettivo di quella colonna utilizzata nello schema – RiggsFolly

+0

Parliamo di ciò che state facendo per terminare gli ID. Hai 1,5 miliardi di file? O la maggior parte degli ID è stata cancellata? Bruciato? Altrimenti perso? Potrebbe essere possibile rallentare il consumo in modo da non esaurire. –

risposta

3

Tutte le versioni di MYSQL (sia a 32 bit che a 64 bit) utilizzano un campo di 8 byte per una colonna definita come BIGINT.

Quindi modificare la colonna da bigint

Check the documentation

+0

Come indicato nella mia domanda, modificare il tipo di colonna di una tabella così grande richiederebbe un tempo di fermo molto lungo per il nostro server db. – Pinch

+0

Beh, non sembra che tu abbia la possibilità di non fare nulla. – RiggsFolly

3

quindi provare a cambiare il tipo di campo. Prova qualche tipo con una vasta gamma come "BIGINT".