varchar的长度对性能有影响吗

时间:2019-10-20 06:35:10

标签: db2 db2-luw

我们与开发人员就VARCHAR列的使用进行了讨论,因为VARCHAR列将每个varchar文件定义为varchar(255),varchar(500)...,并且比字段的最大长度大得多, varchar的长度对db2中的性能有影响吗?我们发现,对于30字节或更少的列,建议使用char而不是varchar,而我们担心的是大于30字节的varchar文件。

2 个答案:

答案 0 :(得分:0)

允许过多的列长不是一个好主意。假设FirstName列的最大长度为500,那么您最终可能会在这里找到很长的无关紧要的故事,因为如果不允许的话,为什么不这样做:)

关于性能影响。
唯一的问题可能是在这里,如果为数据库打开了Extended row size(否则您将无法创建太宽的表),并且行的总长度超过了表空间页面的大小。某些varchar列值从数据页中移出,将来需要更多的IO来访问此类行。您应该记住这种行为。在不受控制的varchar列长度的情况下,此类事件的可能性更高。

答案 1 :(得分:0)

这可能会对ORGANIZE BY COLUMN表产生性能影响。列式数据引擎中可以处理的声明的总宽度有一个限制,如果查询计划中违反了此限制,则其余查询将在行数据引擎中处理。