我们看到有些数据库表中有两个字段,类型分别为 varchar(8000)、varchar(8000),我们说这种设计是错误的,为什么呢?

SQL Server 存储中有个“页”的概念,一个“页”是 8K 大小,而一个数据行(一条记录)必须存储在一个页中,不能拆开存储在多个页中,也就是说一个数据行(一条记录)的大小最多是 8K,实际上由于 SQL Server 的页还具有页头,某些类型的字段还要额外占用一些空间,一个数据行(一条记录)的最大大小常常也只有七千多字节

上述表设计中一个字段就达到了 8000 字节,不要说一个数据行(一条记录)了。

有人说,我虽然指定的是 8000 字节,但我存储时不存储满总可以了吧。技术上是允许的,但既然我们用不了那么多字节,为什么要写那么大呢?是不是考虑我们得用 text 字段,或者修改一下表结构。

如果一个数据行(一条记录)足够的小,一个页就可以存储更多的数据行(记录),SQL Server 查询时就不用翻太多的页,查询起来就会更快。

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