2011-08-24 11 views

Odpowiedz

47

Coś prawdopodobnie po prostu zamienia to na int(11) dla ciebie. Ponieważ nie można mieć 255 widocznych cyfr w numerze int, maksymalną wartością będzie 2147483647.

Jeśli potrzebujesz więcej, możesz ustawić to ustawienie jako niepodpisane: , since I'm assuming you have no negative ids and then you can have up to 4294967295`.

Jeśli kiedykolwiek będziesz mieć więcej niż 4 miliardy rekordów (bardzo mało prawdopodobne, jeśli masz teraz 1 milion), możesz zamiast tego użyć numeru bigint, który umożliwia przechowywanie numerów do 18446744073709551615 za niewielką opłatą więcej miejsca do przechowywania oczywiście.

+0

oznacza to, że typ 255 jest bezużyteczny? – DNB5brims

+4

Tak, żadna liczba całkowita nie będzie wyświetlana jako 255 znaków. Najdłuższy to (11), który wystarcza dla symbolu '-' i 10 cyfr. Jeśli używasz nieprzypisanego int, możesz równie dobrze ustawić na int (10) – Paulpro

5

Jeśli niezapiszony, od 0 do 4 294 967 295, więc jest to więcej niż eough.

Więcej informacji in mysql docs.

+0

identyfikacyjne są zazwyczaj unsigned ... Więc ... – Deele

+0

@Deele: docs (* te, które związane *) stwierdzają, że liczba całkowita jest podpisany domyślnie i że UNSIGNED jest opcjonalny (a nie standardowe) – gbn

+3

@ gbn, czy trudno ci było przeczytać pierwsze dwa słowa w mojej odpowiedzi? – Deele

8

-2147483648 do 2147483647, jak na docs za podpisanym wartości 32-bitowej liczby całkowitej

255 jest tylko wyświetlanie szerokości i nie wpływają na zakres wartości

6

STORAGE INT w mysql zastosowanie 4 bajtów i zakres od -2147483648 do 2147483647. Jeśli używasz unsigned int, zakres wynosi 0 do 4294967295.

2

Zobacz this blog.

SELECT ~0 as max_bigint_unsigned 
,  ~0 >> 32 AS max_int_unsigned 
,  ~0 >> 40 AS max_mediumint_unsigned 
,  ~0 >> 48 AS max_smallint_unsigned 
,  ~0 >> 56 AS max_tinyint_unsigned 
,  ~0 >> 1 AS max_bigint_signed 
,  ~0 >> 33 AS max_int_signed 
,  ~0 >> 41 AS max_mediumint_signed 
,  ~0 >> 49 AS max_smallint_signed 
,  ~0 >> 57 AS max_tinyint_signed 
\G 

*************************** 1. row *************************** 
    max_bigint_unsigned: 18446744073709551615 
     max_int_unsigned: 4294967295 
max_mediumint_unsigned: 16777215 
max_smallint_unsigned: 65535 
    max_tinyint_unsigned: 255 
    max_bigint_signed: 9223372036854775807 
     max_int_signed: 2147483647 
    max_mediumint_signed: 8388607 
    max_smallint_signed: 32767 
    max_tinyint_signed: 127 
1 row in set (0.00 sec)