经常建议选择尽可能窄的数据库字段大小。我想知道在SQL Server 2005 VARCHAR
列中适用的程度:在VARCHAR(255)
字段中存储10个字母的英语单词不会占用比VARCHAR(10)
字段更多的存储空间。为什么使用较短的VARCHAR(n)字段?
是否有其他原因来限制VARCHAR字段的大小以尽可能贴近数据的大小?我正在考虑
- 性能:在选择,过滤和排序数据时使用较小的n有没有优势?
- 内存,包括应用程序端(C++)?
- 风格/验证:您认为限制colunm大小以强制非感性数据导入失败(例如200个字符的姓氏)有多重要?
- 还有什么?
背景:我帮助数据集成商将数据流设计成数据库支持的系统。他们必须使用限制他们选择数据类型的API。对于字符数据,只有VARCHAR(n)
与n < = 255可用; CHAR
,NCHAR
,NVARCHAR
和TEXT
不是。我们正试图制定一些“良好实践”规则,如果真的有损于使用VARCHAR(255)
甚至对于实际最大尺寸不会超过30字节左右的数据,问题就出现了。
一张表的典型数据量为1-10 Mio记录,最多可包含150个属性。查询性能(SELECT
,经常有广泛的WHERE
条款)和应用程序端检索性能是最重要的。
第二项为+1。 – 2010-06-11 20:55:39
说得很好。 – HLGEM 2010-06-11 22:06:35