ibz*_*ibz 29 postgresql performance varchar diskusage
从性能的角度来看,VARCHAR(100)是否比VARCHAR(500)更好?磁盘使用情况怎么样?
今天谈论PostgreSQL,而不是历史上的一些数据库.
the*_*jxc 31
它们完全相同.
从PostgreSQL文档:
http://www.postgresql.org/docs/8.3/static/datatype-character.html
提示:除了使用空白填充类型时增加的存储大小,以及在存储到长度受限的列中时检查长度的一些额外周期之外,这三种类型之间没有性能差异.虽然character(n)在其他一些数据库系统中具有性能优势,但它在PostgreSQL中没有这样的优势.在大多数情况下,应该使用文本或字符变化.
他们在这里讨论char(n),varchar(n)和text(= varchar(1G))之间的差异.官方的故事是varchar(100)和text(非常大的varchar)之间没有区别.
TEXT /与VARCHAR相同,没有明确的长度,即文本
"短字符串(最多126个字节)的存储要求是1个字节加上实际字符串,其中包括字符空格填充.较长的字符串有4个字节的开销而不是1.长字符串由系统压缩自动,因此磁盘上的物理要求可能会更少.很长的值也存储在后台表中,这样它们就不会干扰对较短列值的快速访问.在任何情况下,可以存储的最长字符串是关于1 GB."
同时指VARCHAR和TEXT(因为VARCHAR(n)只是TEXT的限制版本).人为地限制您的VARCHARS没有真正的存储或性能优势(开销是基于字符串的实际长度,而不是基础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
| 归档时间: |
|
| 查看次数: |
14295 次 |
| 最近记录: |