varchar字段 – 是两个更有效率的权力?

使用大小为2的幂与另一个数的varchar字段效率更高吗? 我想不,因为对于SQL Server,默认值是50。

然而,我听说(但从来没有证实),大小字段作为2的幂是更有效的,因为它们等于偶数字节,计算机处理位和字节。

那么,声明为varchar(32)varchar(64)的字段是否比varchar(50)有任何真正的好处?

没有。

在其他一些用途中,使用两个尺寸的结构有一些优点,主要是因为你可以在另一个两个尺寸的结构内安装一个很好的(两个幂的)数量的结构。 但是这不适用于数据库字段大小。

与VARCHAR相关的唯一的“两次幂”是关于varchar(或某些SQL方言中的TEXT / BLOB)的确切types:如果小于256,则可以使用单个字节来指示长度。 如果小于65536(64KB),两个字节就够了,三个字节到16777216(16MB),四个字节到4294967296(4GB)。

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

当然这是在考虑Unicode之前…

我一直认为人们为varchar领域select两个幂,因为我们是极客,这就是我们所做的。 至less我一直这样做。

对于一般的SQL? 不,对于具体的实施,也许。

更高效的不是由规范决定的(SQL只是一个规范),而是如何在某个DBMS中实现。

使用某些最大长度将会看到的唯一实际益处是VARCHAR所需的存储空间。 最大长度超过255将需要一个额外的字节来存储每行的值的长度(额外的2个字节的长度为256 ^ 2或更大,等等)。

这取决于具体的数据库实现,但我不希望它。 它通常不会对字符数进行任何计算,所以它不应该影响性能空间。