有人知道PayPal的“ PNREF”(从零美元的授权中返回)是否总是12个字符?
我问这个是因为我想优化mySQL存储。
而且,我对SO的回答比对PP的:-D
更信任答案 0 :(得分:4)
不要“优化”您的存储。服务器级兆字节大小的驱动器不仅仅花费数百美元,使存储少量字节的成本几乎为零,而且VARCHAR(255)
列仅占用内容所占用的空间,因为它们可变长度。
如果您进行了100万笔交易,每笔交易节省了10个字节,那么您已经保存了10兆字节的所有数据,或价值约0.0001美元的存储。我想如果您已经进行了100万笔交易,那么您可以负担得起。贝宝(PayPal)费用实际上是几千万倍乘以。
实际上,VARCHAR(12)
和VARCHAR(255)
中的12个字符之间的零节省。在内部,这些表示为内容的单个长度字节加上 N 个字节。对于常规的7位值,这意味着每个条目13个字节。
唯一的区别是,如果您插入更长的值,则您会随意将前者限制为12个字符,并且会出现截断错误(如果设置了此标志,如在新版本的MySQL中一样),则将会丢失数据并且不知道,直到修复为时已晚。
只需使用VARCHAR(255)
,以便当PayPal决定今天使用14个字符时,您的代码不会爆炸。这些情况可能会在没有警告和没有任何逻辑原因的情况下发生改变。