您的位置:首页 > 其它

char()和varchar2()的区别

2017-02-16 17:29 197 查看
char():

          char()是存放固定长度字符的数据类型,最大长度是2000字符

        固定长度是指char(20)中即使存储3个字节的数据但是还是会占用20个字节的内存

varchar2():可以用非Unicode的字符数据

         varchar2()是存放可变长字符的数据类型,最大长度为4000字符

        可变长度是指varchar(20)中存储3个字节的数据,那么只会占用3个字节的内存

        所以varchar2()要比char()节省空间,但是在效率上却不如char()

        varchar2()保存空数据时会自动转换成null

        VARCHAR2虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用CHAR代替VARCHAR2会更好一些。当使用索引读取单行时,行迁移影响OLTP系统。最糟糕的情形是,对所有读取操作而言,增加了额外的I/O。行链接则影响索引读和全表扫描。

        varchar2()是oracle数据库特有的数据类型,使用varchar2()将会保证更好的兼容性

        在varchar2()中一个汉字占两个字符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: