2011-03-29 34 views
2

我必須存儲大約10個int,使用10個int列還是隻有varchar列的白色值被字符分割才更好?mysql,多列或varchar列?

我永遠不需要索引這些列或做數學運算。

DATAS的爲例可以是:

在(指論壇)線程的排 的評論數|票數|合作伙伴數量

這些數據只需要緩存,而不是經常更新。

+0

更新的問題 – rodi 2011-03-29 13:48:18

回答

4

我會使用分隔的整數。幾方面的原因:

  • 它可能更乾淨的解決方案
  • 如果需要
  • 您可以通過它們進行排序
  • 沒有必要割裂開來的實際使用之後使你靈活地添加索引

要提供一些更復雜的答案,您需要對問題有更深入的瞭解。

編輯:不要相信你會節省空間。 INT始終爲4個字節,數量爲varchar需要1個字節用於每個數字+分隔符。因此,如果您存儲的號碼超過999,您實際上會釋放空間。

+0

mysql不在列之間使用分隔符? – rodi 2011-03-29 13:54:17

+0

值得開個別問題:) – 2011-03-29 14:01:52

1

取決於您的需求。 int列的性能更好,varchar節省存儲空間。

+0

我不同意這裏。 INT總是4個字節。編號2147483647仍然適用於表示爲varchar的INT將佔用11個字節。每個數字將表示爲varchar時最多佔用10個字節+分隔符。 – 2011-03-29 13:11:03

1

我寧願單獨存儲值,但它主要取決於它是什麼樣的數據。在特定情況下將它們存儲在一起會更好。

0

10 INT列 - 與排斥,如果他們只需要顯示

0

如果你永遠都需要訪問你應該將它們存儲在不同的領域的各個整數。根據預期用途,最好爲整數提供一個單獨的表格,但考慮到您的問題,很難確定這是否適用。

分享和享受。

0

10個整數列將佔用更少的空間。 1整數= 4字節(除非它是長整型)。所以不管輸入什麼,總是有40個字節,而varchar可以增長,你需要浪費一個字節作爲分隔符。

0

使用單獨的Integer列。

參數:
- 一個整數值需要較少量的數據庫比它的字符串表示
- 在未來,你將能夠在任何這些列的做業務搜索/過濾/和/平均值。
- 它會確保保存的數據是整數,任何保存其他東西的嘗試都會產生錯誤。

他們是一些特殊的情況,它可能會更準確地保存字符串中的數據,但我們需要知道更多的判斷。