我的问题是在 SQL 中生成列时使用什么更好。nvarchar (varchar) 的大小应该乘以 2 (32, 64, 128) 还是没关系,我们可以使用完整的数字示例 '100', '50' ?
非常感谢您有理由的回答
祝福大家
没有任何区别。使用适合您数据的大小。
例如 SQL Server,如果您查看记录剖析,您会发现您的大小转换为记录偏移量,这些记录偏移量取决于表中的前一条记录、空值和其他因素,特别是在采用行压缩和页面压缩的情况下考虑到。在访问该字段时,与原始声明大小关系的任何相似之处,即 2 的幂或 10 的幂,早已不复存在。此外,查询执行堆栈上更高的各种元素,如连接运算符或排序运算符或其他任何东西,也不会从 2 大小的幂中受益(我没有“证明”链接,但如果你相信我的话就可以了......) . 将数据封送回客户端时,TDS 协议也没有。而且我也看到客户没有什么好处。
没有理由使用 2 的倍数。设置字段以匹配数据的估计大小。
一个值得一提的数字是 255。一些数据库系统的最大 varchar 类型为 255,尽管这种情况越来越少。我在这里主要考虑现在非常旧的MySql版本。因此有时开发人员会将列大小设置为 255 或更低,以确保更高的可移植性。
我投票认为没关系。选择对您的应用程序最有意义的内容。使用人类可读的值。为变量和列选择好的名称。只有在非常极端的情况下,您才需要调整。当你发现你需要调整时,调整。在那之前,从商业或人类的角度来看,选择最有意义的东西。
将列的大小设为 2 的幂没有任何好处(N)VARCHAR
。使用适合您的域模型的任何内容。
没关系,所有表列的值都由引擎构造以在物理页面上组合在一起