2011-08-24 108 views

回答

47

東西可能只是爲您轉換爲int(11)。由於int中不能包含255個可見數字,因此最大值將爲2147483647

如果您需要更多,可以將其設置爲無符號, since I'm assuming you have no negative ids and then you can have up to 4294967295`。

如果您曾經將有超過4十億條記錄(如果你是100萬,現在不太可能),那麼你可以使用一個bigint,它可讓您以低成本存儲人數達到18446744073709551615當然更多的存儲空間。

+0

這意味着,我255型是沒用的? – DNB5brims

+4

是的,沒有整數將顯示爲255個字符。最長的是(11),這對於'-'符號和10位數是足夠的。如果你使用的是unisigned int,那麼你可以將它設置爲int(10) – Paulpro

5

如果沒有發現,則從0到4 294 967 295,這樣就不會太過分了。

更多信息in mysql docs

+0

ID的通常是未簽名的...所以... – Deele

+0

@Deele:在文檔狀態INTEGER默認情況下籤署的(*您鏈接到*的那些)和未簽名是可選的(非標) – gbn

+3

@gbn,您是否覺得我的答案中的前兩個單詞很難閱讀? – Deele

8

-2147483648到2147483647具體根據docs爲有符號的32位整數值

的255是簡單地顯示寬度,並且不影響值

6

INTmysql使用4字節存儲的範圍,範圍從-2147483648到2147483647。如果使用無符號整數,範圍是0到4294967295

2

請參閱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) 
相關問題