2011-10-06 32 views
1

當使用MySQL時,是否有時候使用文本字段(varchar,text等)而不是數值字段(int,float等) )即使所有要存儲的數據都是數字?什麼時候在InnoDB中使用varchar作爲數字數據MySQL表格

例如,將'5位數的郵政編碼'數據存儲在5個字符'varchar'字段而不是顯式數字字段中會更好,更快還是更高效?

如果是,我怎樣才能確定何時最好使用數字數據的文本字段?

如果相關,我正在使用InnoDB。

編輯:我使用上面的例子作爲一個zipcode,但'一般'應選擇一個數字數據類型的文本數據類型當所有要存儲的數據是數字數據。

回答

1

埃德的答案几乎涵蓋了一切,作爲一般規則:

  • 不存儲數值在varchar列 - 除非有機會,其他字符將被儲存(例子是郵政編碼和電話號碼)

當需要計算/存儲的值在字符串比較2 總是使用數值數據類型(比較,比10更大)

+0

「在字符串比較2中大於10」幾乎總結了它。 :) 謝謝。 – Citricguy

4

取決於您如何使用數據。對於郵政編碼,我會使用VARCHAR - 僅僅因爲它是地址的一部分,不會用於計算。此外,您可能希望在將來包含其他國家(在英國,我們的郵政編碼爲字母數字)。

+0

因此包含數字數據的字段可能在計算中使用,它們應該保持數字,但那些只能「顯示」的字段可以安全地設置爲varchar。在這種情況下,對數字數據類型使用varchar有什麼好處嗎? (謝謝你在英國地址上的提示,這非常重要。) – Citricguy

相關問題