据我所知,2,4,8,16,32,64,128,256 …是二进制数字的十进制等值.
有没有理由将这些用于数据库?例如,VARCHAR字段通常为255个字符.由于(我假设)每个字符都是一个字节,为什么使用255个字符和使用257个字符有区别?
解决方法
对于varchar列,长度与数据一起使用无符号整数存储在数据的前导字节中.使用最少的字节数;一个字节可以存储从0到255的长度,从0到65535的两个字节等.通过使长度为255,可以从最小的一个长度字节中获得“最大值”.
在过去的日子里,每行保存的单个字节的磁盘值得保存.虽然现在磁盘价格便宜,但这种想法仍然存在,特别是白发苍苍的DBA.
选择2的幂的长度是没有优势的,例如varchar(64) – 它只是一个习惯/惯例(我甚至遵循它 – 我不知道为什么!).