时它更有效地使用一个varchar场尺寸为两个与另一个号码功率?我想不会,因为SQL Server的默认值是50。

然而,我听到(但从来没有确认),该上浆字段2的幂是更有效的,因为它们等同于偶数字节和计算机处理在比特&字节。

因此,没有一个字段声明为varchar(32)varchar(64)有超过varchar(50)任何实际的好处?

有帮助吗?

解决方案

在一些其他用途,也有一些优点以使用结构具有两个大小的功率,主要是因为可以适合在另一个内部电源的两尺寸结构的这些数很好(的2的幂)。但是,这并不适用于数据库字段大小。

在仅约(在一些SQL方言或TEXT / BLOB)的确切类型VARCHAR的乘方的两上浆相关VARCHAR处理:如果它小于256,它可以使用一个单一的字节,以指示长度。如果是小于65536(64KB),两个字节是不够的,三个字节工作到16777216(16MB),四个字节到4294967296(4GB)。

另外,也可以说,VARCHAR(50)是一样VARCHAR(255)如昂贵,因为两者都将需要n + 1个字节的存储空间。

当然想的Unicode的......之前这就是

其他提示

我一直以为人选择VARCHAR领域的两个大国,因为我们是爱好者,这就是我们要做的。至少这是我一直在做。

你会使用某些最大长度看到的唯一明显的利益是用于VARCHAR所需的存储空间。超过255的最大长度将需要一个额外的字节来存储值的每一行中的长度(和一个额外的2个字节用于长度256 ^ 2或更大等)。

有关一般SQL?号对于一个特定的实施方式中,也许

这是更有效的不是由规范(SQL仅仅是一个规范)来测定,但它是如何在一定的DBMS实现。

这取决于具体的数据库实现,但我不会指望它。它不是字符的数目进行任何计算一般,所以应该不会影响性能 - 只有空间

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top