2010-05-15 30 views
7

我彷彿看到了很多人隨意分配的大尺寸在自己的MySQL架構主/外鍵的字段,如INT(11),甚至BIGINT(20)WordPress使用。MySQL主/外鍵大小?

現在糾正我,如果我錯了,但即使INT(4)將支持(無符號)值超過40億。將其更改爲INT(5),並且允許值高達四萬億次,這比您以前需要的還要多,除非您可能在NASA/Google存儲地理數據,而我相信大多數人都不是。

是否有一個原因,人們使用這種大尺寸的主鍵?看起來像是浪費給我...

+1

不,大小字段的字符不是二進制字節。因此,int(4)最多隻能保持9999(理論上,數據庫可能會將其內部存儲爲更大)。 INT(11)實際上只是一個32位數字。 – MarkR 2010-05-15 23:00:43

回答

10

大小既不是位也不是字節。 只是指定了ZEROFILL 時使用的顯示寬度,即 。

INT [(M)] [UNSIGNED] [ZEROFILL]甲 正常大小整數。符號範圍 是-2147483648到2147483647。 無符號的範圍是0到4294967295

this explanation

0

我看不出有什麼好的理由使用一些比正常的商業大小的數據庫索引數據的32位整數較大。他們中的大多數可能有數百萬條記錄(或者這個數量級)。

+0

MySQL也沒有。他們使用INT數據類型的32位整數。 ()中的數字與位數無關。 – 2010-05-15 18:04:49