Answers:
它确实会影响内存使用,特别是当客户端程序必须分配足够的内存来接收数据集时。
请记住,许多应用程序(尤其是Web应用程序)都使用UTF-8(这是一个多字节字符集)。因此,您应该真正考虑字符而不是字节。
如果我期望超过一千个字符,那么我会积极考虑CLOB。我会考虑是否将存储纯文本或某种形式的标记(wiki / html?),以及非欧洲语言的用法。例如,此处的问题和答案将为CLOB,但注释可适合VARCHAR。
如果将VARCHAR最大化,那么六个月后将有人希望再次增大它,并且您将因不使用CLOB而踢自己。
尽管存在一些可能对您很重要的附带问题,但通常没有性能方面的考虑。对于限varchar
应该被认为是像任何其他的限制-这是有强制执行业务规则。
IMO,您应该提出的问题是“我是否要防止存储在此字段中的自由文本数据的长度大于n个字节/字符,”-这是在varchar(512)
和之间进行选择的唯一决定因素varchar(4000)
。
请注意,我假设您正在谈论的varchar
是SQL类型-情况有所不同,pl/sql
并且出于内存分配原因,选择长度可能至关重要。
clob
,不是吗?