DB2 Varchar字段长度

3

我不确定在DB2中选择varchar字段长度为255还是256。对于性能来说,应该选择什么样的大小呢?从我在谷歌上的搜索结果来看,似乎255最好,因为它等于1个字节。这是正确的吗?varchar(255)需要1个字节,还是varchar(256)需要1个字节?

1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
6

个人而言,我认为针对可变长度列读取一个字节或两个字节不会产生很大的影响。事实上,这个长度将被用于分析需要在一行中读取多少个字符,这更具有惩罚性(两个操作,一个是数量,一个是数据)。

你可能认为,在一个有一百万条记录的表中增加一个额外的字节会占用很多不必要的磁盘空间,但是当压缩功能激活时,这并不是与存储(IO)或处理(CPU)相关的问题。

顺便说一下: 255 = 11111111(一个字节) 256 = 100000000(两个字节)

唯一的建议是,对于超过30个字符的列使用varchar,否则最好使用定长列CHAR,因为相比较需要读取的数据量,读取长度加数据的开销更大。(http://www.ibm.com/developerworks/data/library/techarticle/dm-0404mcarthur/


如果使用CHAR来定义一个小字段,另外一个有趣的原因是:在排序时,DBB引擎会将空格填充到varchar的完整长度。 http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2z10.doc.perf%2Fsrc%2Ftpc%2Fdb2z_improvesortprocessing.htm - Josh Hull

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,