Database-Design

像序列號這樣的數字標識符是否應該儲存為整數?

  • May 31, 2013

我們的許多數據庫都將數字跟踪程式碼(如序列號)儲存為整數。這些程式碼幾乎不可能每次都獲得字母字元,但它似乎仍然是不正確的數據類型,因為您永遠不會對它們執行數學運算。

對於這些類型的標識符,什麼是合適的數據類型?

使用INTover say a CHARor的最大優勢之一VARCHAR(10)是尺寸。該INT值將是 4 個字節,該CHAR/VARCHAR值將是 10 個字節。 NCHAR/NVARCHAR在 20 字節時會更大。由於這個INT值的索引比對應的索引更小,因此更快,有時甚至相當快CHAR/VARCHAR。此外,您的行大小更小,每行需要更少的讀取。當然,這一切都與實際的空間儲存無關。 Thomas LaRock"right sizing"已就您的數據類型 撰寫了數篇部落格。這種數據類型是否使我的列看起來很胖以及如何:例如,正確調整緩衝池中目前數據類型的大小。

當然,所有這些都假設您實際上不會在跟踪程式碼中使用字元。如果您是,那麼您當然別無選擇,只能使用CHAR\VARCHAR.

引用自:https://dba.stackexchange.com/questions/43590