可以使用INT作爲MySQL中索引的數據類型。我不確定這是否是最好的方式,因爲我完全期望這張桌子獲得很多條目,最終會「溢出」我懷疑像Facebook使用INT作爲其索引的東西作爲wallpost表或其他將是高流量/獲取大量條目的其他內容。什麼數據類型用於MySQL唯一鍵/索引
有什麼想法?
可以使用INT作爲MySQL中索引的數據類型。我不確定這是否是最好的方式,因爲我完全期望這張桌子獲得很多條目,最終會「溢出」我懷疑像Facebook使用INT作爲其索引的東西作爲wallpost表或其他將是高流量/獲取大量條目的其他內容。什麼數據類型用於MySQL唯一鍵/索引
有什麼想法?
int可以上升到超過2 十億(兩倍多,如果無符號)。如果你希望你的表有更多的行,你可以使用一個BIGINT(這個無符號長達18,446,744,073,709,551,615,—可能比Facebook需要的多)。
一般來說,你有兩個選擇:
A「natural key」反映您正在使用的數據的真實性。 例如,電話號碼可能是呼叫列表的有效主鍵,但它完全不適用於例如醫療保健受益人列表,因爲許多人可能在家中共享相同的電話號碼。請注意,一個自然鍵可能由多個字段組成。例如,品牌,型號和年份的組合可能是汽車模型列表的關鍵。
另一方面,'surrogate key'只是您分配給某一行的任意值。如果你走這條路線,我建議使用GUID(MySql中的UUID)。 The best way that I know來表示那些在MySQL中有一個char(36)列。 GUID永遠是唯一的,可以無限使用。
如果你堅持使用一個普通的舊號碼,那麼INT可能是好的,或者你可以使用BIGINT來確定。
BIGINT UNSIGNED ZEROFILL
索引加速數據檢索;我想你的意思是說「主鍵」。 – 2011-03-10 06:19:01