利用PostgreSQL怎么对文本类型字段的存储方式进行修改

  介绍

这篇文章给大家介绍利用PostgreSQL怎么对文本类型字段的存储方式进行修改,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

PostgreSQL存储方式分为以下4种:

普通避免压缩或者线外存储;而且它禁用变长类型的单字节头部。这是不可烤数据类型列的唯一可能的策略。只是对那些不能烤面包的数据类型才有可能。

扩展允许压缩和线外存储。这是大多数可烤数据类型的默认策略。首先将尝试进行压缩,如果行仍然太大,那么则进行线外存储。

外部允许线外存储,但是不许压缩。使用外部将令那些在宽文本和bytea列上的子串操作更快(代价是增加了存储空间),因此这些操作被优化为只抓取未压缩线外数据中需要的部分。

主要允许压缩,但不允许线外存储(实际上,在这样的列上仍然会进行线外存储,但只是作为没有办法把行变得足以放入一页的情况下的最后手段)。

文本的默认存储方式为扩展,但是在文本字段非常小的情况下,为提升性能我们可以将文本存储方式改为平原。

创建表:

drop  table  if  exists 测试;   create  table 测试(   ,f1  char (1),   ,f2  varchar (16),   ,f3  text    之前,);

查看表定义:

<代码> \ d +测试;

Column  |, Type  |, Collation  |, Nullable  |, Default  |, Storage  |, Stats  target  |, Description    - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   | f1 字符(1),|,|,|,|,extended  |, |,   | f2  character 不同(16),|,|,|,|,extended  |, |,   | | f3  text  |, |, |, extended  |, |

修改f1和f2的存储方式:

列f1, f2因为非常小,采用延长存储方式大量数据时性能不如平原好,因此在创建表完成后可以使用以下语法修改列f1和f2的存储方式为平原。

 alter  table  test 
  ,alter  column  f1  set  storage 平原,
  ,alter  column  f2  set  storage 平原;

重新查看定义:

<代码> \ d +测试;

column  |,, Type , |, Collation  |, Nullable  |, Default  |, storage  |, Stats  target  |, Description    - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   | f1 字符(1),,|,,|,,|,,|,plain  |,, |,   | f2  character 不同(16),|,,|,,|,,|,plain  |,, |,   f3  |, text ,, |,, |,, |,, |, extended  |,, |

对于已经有数据的表修改存储方式后的操作

首先修改字段的存储方式,然后运行

<代码>真空完整详细测试;

真空全部选项可以回收空间,但有排他锁,它实际上创建该表的一个新拷贝,并且在操作完成之前都不会释放旧的拷贝。

<强>因为会长时间锁表,请慎重使用真空完整

<强>补充:修改PostgreSQL的字段数据类型报错

修改字段类型

1。使用可视化工具修改列数据类型:

注意:字段类型转varchar或者从varchar改成其它数据类型是不会出问题的。

但是直接从资金类型转到int类型(数字)就会报的错。这时需要先转换成varchar然后再转换成指定的类型。

利用PostgreSQL怎么对文本类型字段的存储方式进行修改

2。使用SQL语句修改

注意:使用SQL方式修改字段类型,也需要使用varchar过度,例如将钱类型的字段转成int4

类型,那么将执行

alter  table  test  alter  column  filed  type  varchar  using 提出:varchar   alter  table  test  alter  column  filed  type  int4  using 提出:int4      alter  table  test  alter  column  filed  type  varchar  using 提出:varchar   ——,test 表名   ——,filed 字段名

关于利用PostgreSQL怎么对文本类型字段的存储方式进行修改就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

利用PostgreSQL怎么对文本类型字段的存储方式进行修改