Nvarchar或varchar什么是最好使用乘以2或舍入全数?

时间:2009-09-03 17:56:30

标签: sql size varchar nvarchar

我的问题是在SQL中生成列时最好用什么。如果nvarchar(varchar)的大小是2(32,64,128)的乘数或它是无关紧要的,我们可以使用完全数字示例'100','50'?

非常感谢您提供理由的答案

向所有人致意

5 个答案:

答案 0 :(得分:14)

没有任何区别。使用适合您的数据的大小。

例如SQL Server,如果查看Anatomy of a Record,您会看到您的大小转换为依赖于表中先前记录的记录偏移,空值和其他因素,特别是行压缩和页面压缩考虑在内。在访问该字段时,与原始声明大小关系,相对于2的幂或10的幂的任何相似性早已消失。查询执行堆栈上的各种元素如连接运算符或排序运算符等等,也不会受益于2个大小的权限(我没有'证明'链接,但是如果你接受我的话就可以了......) 。在将数据封送回客户端时,TDS协议也没有。而且我看到客户也没什么好处。

答案 1 :(得分:8)

没有理由使用2的倍数。设置字段以匹配估计的数据大小。

值得一提的一个数字是255.某些数据库系统的最大varchar类型为255,但这种情况越来越少。我主要考虑的是现在非常旧版本的MySql。因此,有时开发人员会将列大小设置为255,以确保更具可移植性。

答案 2 :(得分:3)

我投票认为没关系。选择最适合您应用的内容。使用人类可读的值。为变量和列选择漂亮的名称。只有在非常极端的情况下才需要调整。当你发现你需要调整,调整。在此之前,从商业或人的角度出发,了解最有意义的事情。

答案 3 :(得分:2)

(N)VARCHAR列的大小设为2的幂是没有好处的。使用适合您的域模型的任何内容。

答案 4 :(得分:2)

没关系,所有表列的值都由引擎构成,以便在物理页面上组合在一起