• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

postgre的bpchar字段类型相当于MySQL的什么类型

bpchar 是一个字符串类型。相当于mySQL中的char类型。他是一个指定长度的字符串;例如:指定了20个长度,你存储了‘123’,长度也是20;查询速度的话,定长字符串如果存储合适(也就是他的长度),查询效率要高于不定长的字符串。

一、postgre的bpchar字段类型相当于MySQL的什么类型

bpchar 是一个字符串类型。相当于mySQL中的char类型。

他是一个指定长度的字符串;例如:指定了20个长度,你存储了‘123’,长度也是20;

查询速度的话,定长字符串如果存储合适(也就是他的长度),查询效率要高于不定长的字符串。

varchar是变长字符串。

所以,如果是确定长度的存储,用char;bpchar;是可以提高查询效率的。

bpchar,varchar,char,text之间的区别与联系

背景

在使用postgresql,及实际开发及数据整理过程中,常遇见来自不同源端或不同开发人员的数据表,其字段格式相同但却有少许不一致,如text ,bpchar,varchar,char等等格式,在进行数据整合时常需要一个个去检查字段格式并做出调整

下面整理了下面几种格式的区别:

text

这种格式起源与MySQL数据库,当时是为了存储unicode型的长字符串,在postgresql数据库里边也有这个字段类型,现在text和varchar几乎无性能差别,区别仅在于存储结构的不同

char

定长字符串,如定义char(16),则实际字符串若超过16位则报error,若少于16位,则按字符串原样保存不足部分用空格填充,存储长度为16位

varchar

不定长字符串,如定义varchar(16),则实际字符串若超过16位则报error,若少于16位,则按原样保存且按实际字符长度保存

bpchar

无具体含义,是varchar类型的别名

延伸阅读:

二、PostgreSQL任意精度类型(arbitrary precision numbers)

关键特性:占用存储空间可变

语法:

NUMERIC(precision, scale)

  • precision,总精度,可以存储的总位数
  • scale,小数点后的位数

NUMERIC类型适用于要求精确的场景,例如金融领域。

对NUMERIC类型的计算,如加、减、乘是精确的,但精确度的提升带来的是速度的下降,相比INTEGER类型和FLOAT类型,NUMERIC类型的计算速度十分缓慢。

对于小数位超过scale的情况,超过的部分会被舍入,对于整数部分超过限制的情况,会引发错误。

相关文章