时VARCHAR(100)的任何比VARCHAR(500)从性能的角度来看更好?有关磁盘使用情况怎么样?

今天谈到的PostgreSQL,而不是一些数据库一段时间内的历史。

有帮助吗?

解决方案

它们是相同的。

从PostgreSQL文档:

http://www.postgresql.org/docs/8.3/静态/数据类型-character.html

  

提示:没有表现   这三种类型之间的差异,   除了增加的存储大小时   使用填补空白的类型,和几个   额外的周期来检查长度时   存储到一个长度受限   柱。虽然字符(n)具有   在其他一些性能上的优势   数据库系统,它有没有这样的   PostgreSQL中的优势。多数情况   情况文本或字符改变   应该使用。

在这里,他们正在谈论炭(N),VARCHAR(n)和文本之间的差别(= VARCHAR(1G))。官方的故事是,有VARCHAR(100)和文本(非常大的VARCHAR)之间没有差别。

其他提示

TEXT /是/ VARCHAR相同没有明确的长度,文本

  

“一个短的存储要求   字符串(最多126个字节)是1个字节   加上实际的字符串,其中包括   在的情况下的空间填充   字符。更长的字符串有4个字节   开销,而不是1.长字符串   由系统被压缩   自动,所以物理   在磁盘上的要求可能会较少。   非常长的值也存储在   背景表,以便他们不   与快速访问短干扰   列值。在任何情况下,   最长的可能的字符串,   可以被存储为约1 GB。“

指的是VARCHAR和TEXT(因为VARCHAR(n)是TEXT的只是一个有限的版本)。限制你的VARCHAR处理人为有没有真正的存储或性能优势(开销是基于字符串,而不是底层的varchar长度的实际长度),可能除了对通配符和正则表达式比较(但这个级别中是开始的事情,你应该是在找什么东西一样,PostgreSQL的全文索引支持)。

有是varchar(m)之间没有差别和varchar(n) ..

http://archives.postgresql.org/pgsql-admin/ 2008-07 / msg00073.php

有是varchar(n)text之间的差虽然,varchar(n)有一个内置的约束哪些必须被检查,实际上是慢一点。

http://archives.postgresql.org/pgsql-general/ 2009-04 / msg00945.php

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top