2016-01-23 21 views
7

Mamy tabelę mysql, która wkrótce kończy się ids (główny identyfikator to 32-bitowa liczba całkowita, a max id to już około 1,5 miliarda). Jaki jest najlepszy sposób rozwiązania tego problemu? Zmień typ identyfikatora na 64-bitowy jest opcją, ale mogłoby to obniżyć bazę danych zbyt długo, ponieważ tabela ma miliard wierszy.Tabela Mysql wyczerpana ids

+0

Jaki jest rzeczywisty typ danych w tej kolumnie użytej w twoim schemacie – RiggsFolly

+0

Porozmawiajmy o tym, co robisz, aby zabrakło identyfikatorów. Czy masz 1,5 miliarda wierszy? A może większość ids została usunięta? Spalony? Inaczej zagubiony? To może być możliwe spowolnienie konsumpcji, tak aby nie zabrakło. –

Odpowiedz

3

Wszystkie wersje MYSQL (zarówno 32-bitowe, jak i 64-bitowe) używają 8-bajtowego pola dla kolumny zdefiniowanej jako BIGINT.

Więc zmiany kolumna być BigInt

Check the documentation

+0

Jak stwierdzono w moim pytaniu, zmiana typu kolumny takiej dużej tabeli wymagałaby bardzo długiego przestoju dla naszego serwera db. – Pinch

+0

Nie wygląda na to, że możesz nic nie robić. – RiggsFolly

3

następnie spróbuj zmienić typ pola. Spróbuj jakiegoś typu z dużym zakresem, na przykład "BIGINT".