close

如果定義varchar2(10)和varchar2(4000)存储最大10个字的内容,在数据库存储上區别不大,数据库效率也影響不大,但是会带来其它很多的问题,最影响应用的效率。

舉兩個出问题的例子:

 

1.如果你的表中存在多个varchar2(4000)的列,将导致不能创建符合index,创建时报ora-01450错误。

没有符合index,很多时候势必影响应用效率。

 

2.假如你定义了varchar2(4000),那么对于应用代码来说,我必须定义String length为4000的变量来容纳列中的值,因为应用不知道你的列的最大length是10啊,也就是说应用服务器必须额外的分配一些浪费的内存来存储取得的列值;大量的这量代码的存在,消耗了宝贵的内存,必然导致应用效率下降。

 

3.varchar2(10)的列将容纳最大长度的10字节,如果是定义为varchar2(4000)的列,则每行将占4000字节,不管实际中列存储了多少数据。在Driver知道查询结果之前,必须分配足够的内存用于存储可能最大的结果。

 

4.如果在身分證欄位(10碼)設定varchar2(4000)可能導致輸入錯誤 太長等等  ,還有如果是狀態欄位(stats)通常都只有5馬 ,如果沒固定在5馬 也可以造成使用者輸入錯誤產生問題 

arrow
arrow
    全站熱搜

    to52016 發表在 痞客邦 留言(0) 人氣()