难道一个varchar字段的声明的大小有PostgreSQL的任何影响?
-
21-08-2019 - |
题
时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