基础问题,就性能而言char varchar varchar2 哪个好?三者有什么不同?谢谢。

解决方案 »

  1.   

    另:存储、访问varchar(12)理论上比varchar2(10)要快吧,我觉得像内存对齐那样数据库的性能也受字节对齐的影响。
      

  2.   

    另, varchar2 ( 32) 应该是定长的吧?
      

  3.   

    1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。 
    2.CHAR的效率比VARCHAR2的效率稍高。 
    3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。