在java应用程序中,我需要存储可以超过4000个字符的字符串。我只需要把它储存起来。这样,拥有数据库访问权限的人就可以查询和查看数据库。不能从java应用程序访问该列。此外,我没有任何要求索引它。
我的理解是,当我们需要访问CLOB数据类型或需要对其进行索引时,varchar2的性能要好于CLOB。是这样吗?
我的问题是,当我们只需要在sql developer throigh查询中存储和访问它时,在性能方面有什么影响吗?
发布于 2018-07-06 15:07:08
预12c:varchar2被限制在4000字节以内。如果需要在字段中存储更多数据,请选择CLOB。
从12c:varchar2被限制为4000个字节,或在启用扩展数据类型后的32767字节。如果需要在字段中存储更多数据,请选择CLOB。对于扩展的数据类型,varchar2在内部存储为LOB,其中“短”字段进入表段,而“长”字段存储到LOB段。
这两种类型都可以进行索引(Oracle文本)。
LOB被设计为只写一次,然后作为只读数据处理.对于现有LOB数据的DML操作通常比在varchar2上执行得更差。
LOBs支持重复(需要高级压缩选项)。
根据用例的不同,varchar2可以执行得更好或相同。
但是基于上面所写的内容(只读数据、列不被访问或搜索),CLOB应该很好,您不需要篡改扩展的数据类型或关心varchar2的局限性。
https://dba.stackexchange.com/questions/211554
复制相似问题