为什么每种数据类型在pgAdmin 4中都有两个选择?

问题描述 投票:0回答:1

使用pgAdmin 4,为表列定义数据类型,发现每种类型都有两个选择,有什么区别?例如char有两个选择。

enter image description here

pgadmin-4
1个回答
0
投票

因为Postgres不能像对数据结构进行编程那样工作。它不是将它们保留在内存中,而是保留在磁盘上。因此,每个数据结构都有一个固定长度的数组值。参见以获取更多信息:https://stackoverflow.com/a/42484838/13638824


编辑您的问题(评论太久了:]

将数据结构写入内存和磁盘是完全不同的。内存是动态的,对其进行写入非常便宜,因此它可以非常快速地处理数据更改。但是写入磁盘并不便宜,当数据库系统决定写入数据时,他们正在努力提高效率。他们通常在后台使用固定大小的分配来提高性能。定义Text dbms时不会创建string。它将以可扩展数据结构的形式写入磁盘,以确保灵活性和性能。但是,如果使用char[],则长度将是预定义的,因此性能会更高。

TL; DR;

对于内存数据结构:char[] == string。但是对于DBMS char[] == fixed size byte arraytext == flexible size byte array

© www.soinside.com 2019 - 2024. All rights reserved.