我們看到有些數據庫表中有兩個字段,類型分別為 varchar(8000)、varchar(8000),我們說這種設計是錯誤的,為什么呢?

SQL Server 存儲中有個“頁”的概念,一個“頁”是 8K 大小,而一個數據行(一條記錄)必須存儲在一個頁中,不能拆開存儲在多個頁中,也就是說一個數據行(一條記錄)的大小最多是 8K,實際上由于 SQL Server 的頁還具有頁頭,某些類型的字段還要額外占用一些空間,一個數據行(一條記錄)的最大大小常常也只有七千多字節

上述表設計中一個字段就達到了 8000 字節,不要說一個數據行(一條記錄)了。

有人說,我雖然指定的是 8000 字節,但我存儲時不存儲滿總可以了吧。技術上是允許的,但既然我們用不了那么多字節,為什么要寫那么大呢?是不是考慮我們得用 text 字段,或者修改一下表結構。

如果一個數據行(一條記錄)足夠的小,一個頁就可以存儲更多的數據行(記錄),SQL Server 查詢時就不用翻太多的頁,查詢起來就會更快。

引用地址:http://www.cftea.com/c/2006/10/TNRWRCF871NS33K4.asp