VARCHAR字段 - 是两个的力量更有效率?
-
09-09-2019 - |
题
时它更有效地使用一个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实现。
这取决于具体的数据库实现,但我不会指望它。它不是字符的数目进行任何计算一般,所以应该不会影响性能 - 只有空间