首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle字符类型

Oracle字符类型
EN

Stack Overflow用户
提问于 2009-04-21 20:54:06
回答 1查看 676关注 0票数 1

使用VARCHAR2 (1字节)是否比使用CHAR(1字节)的效率低?

如果我从来不在字段中输入任何长度超过一个字符的值,那么使用VARCHAR2 (2000字节)是否比使用CHAR(1字节)的效率低?

**我所说的高效,是指在时间(搜索)和空间(存储)上的效率。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-04-21 21:04:24

根据字符集的不同,CHAR(1字节)可能无法存储任何特定的字符,因此如果我们讨论多字节字符,则VARCHAR2(2000字节)和CHAR(1字节)之间可能存在差异。

更一般地,在SQL语言中( PL/SQL规则略有不同),如果只存储1字节的数据,那么VARCHAR2(2000字节)不会比CHAR(1字节)消耗更多的存储空间(我假设"efficient“主要转化为存储效率)。VARCHAR2(2000字节)通常会导致客户端应用程序分配2000字节的缓冲区来保存字段的内容,因为客户端应用程序事先不知道实际数据大小,这可能会导致客户端应用程序使用过多的内存。不过,这可能会也可能不会转化为一个真正的问题。大多数客户端应用程序不会影响RAM,并且大多数结果集不会向客户端返回数百万行,因此在几百行上浪费几个k可能不是什么大问题。

这里有一个更详细的AskTom thread,特别是关于PL/SQL规则。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/774550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档