考慮一個表,其工作是存儲對象的評級。此處感興趣的列是名爲RATING的列。值來存儲的有效範圍是:SQL:值爲-1,0和1的數據類型選擇
- -1
在首先想到的是存儲爲
TINYINT
smallint
。這將存儲
每行只有一個字節
兩個字節。鑑於
tinyint的範圍是0到255
smallint的範圍是-32768到32767,它在這裏適合嗎?還有其他的數據類型更適合嗎?所需的空間對於表&數據庫的預期大小而言是微不足道的。用戶界面將負責確保這三個值將通過枚舉方式進行選擇。
問題:你可以提出一個更小的存儲容量或任何巧妙的設置來存儲這三個值中的一個,而不會犧牲任何的易於理解?
其他注意事項:
- 存儲空間不是非常大的關注
- 該值將被累加獲得總評
- 這可能是微優化的情況下
- SQL Server 2008
同意。考慮這些事情是很好的,但除非你的桌子擁有數十億行,否則對超越smallint進行優化是沒有必要的,也可能是有害的。 – Aaronaught 2009-12-15 05:21:53