`

Postgre数据库常用特性

 
阅读更多

每个表有如下几个内置的列:

oid tableoid xmin cmin xmax cmax ctid

其中:tableoid xmin cmin xmax cmax ctid这几列是一定会有的,用户不能使用他们来作为列名,而oid却是可以用来作为列名的,前提是要将表定义为非oid表:

WITH (

  OIDS = FALSE

)

如果该表所继承的表中,有任何一个表有OID,则该表将被强制使用OID,而不管SQL中的关于OID的定义;

 

推荐禁用OID(推荐使用一个serial类型的列作为主键),有几个好处:

1、可以节省计算PID的CPU开销,以及磁盘上的IO开销(虽然节省的不是很多)

2、OID是一个32或者64位的一个计数器,当到达其可以表示的最大值后,又会循环重新从0开始计数,这样会导致产生重复的值,使其违反了唯一标识某一行的初衷

但是如果你没有在表上定义主键,则建议开启,并且在其上创建唯一性索引(避免因为计数超过了其能够表示的最大值,然后循环回来产生重复值)这样它可以保证表上始终有一个唯一性的主键,这样可以在一些场合中利用这个唯一主键值提高性能

 

一个表的列数不能超过1600.

 

可以定义一个组合类型:

create type t_rank as(

 "salary" double precision, "level"       smallint

);

 

然后,基于这个组合类型,定义一个表:

create table testdbschema1.employee of t_rank;

但是这种基于自定义类型的表,是不能再自定义列了,其列将完全依照类型的定义;

 

 

查询组合类型:

select * from pg_type where typtype = 'c' and typarray > 0 

AND typname NOT IN (SELECT TABLE_NAME FROM information_schema.tables)

order by typname 

 

查询所有表:

select * from information_schema.tables where  table_Catalog = 'testdb1' and table_schema='testdbschema1'

 

 

表可以继承多个表,这时候将自动继承父表的所有列,并且父表中某个字段数据更新,子表也随之更新,其实就是数据都存放在父表中。如果多个父表,有类型相同的同名字段,则会报错。

 

 

 

 

 

分享到:
评论

相关推荐

    Postgre数据库Insert 、Query性能优化详解

    1. **索引创建**:为常用查询字段建立索引可以极大地提高查询效率。例如,为字段`name`创建B-Tree索引,可以加快按`name`进行搜索的速度。索引的正确使用能确保随着数据量的增长,查询性能保持稳定。 2. **查询条件...

    VC访问数据库技术的方法实例

    总结,VC++访问数据库时,ODBC提供了一种通用的接口,适用于各种数据库系统,而ADO则提供了更高级的特性,如更易用的API和更好的性能。选择哪种方法取决于项目需求,如兼容性、性能和开发效率。在实际应用中,开发者...

    AWSLambdaPostgresConnection:使用无服务器框架在AWS Lambda和AWS RDS(PostgresDB)之间建立连接的POC

    在AWS RDS中使用PostgreSQL,可以享受到云服务的便捷性,同时利用PostgreSQL的高级特性。 4. **Serverless架构** 服务器无状态、按需伸缩是serverless架构的核心特点。在这个项目中,AWS Lambda作为serverless计算...

    PostgreSQL 实用实例参考

    它的强大之处在于其丰富的特性和高度的可扩展性,使得它能够处理复杂的事务处理、数据分析以及大规模的数据存储。本文将深入探讨PostgreSQL的一些实用实例,帮助读者更好地理解和应用这一数据库系统。 ### 1. 安装...

    postgresql 兼容 oracle 函数

    在数据库领域,Oracle和PostgreSQL都是非常知名的开源关系型数据库管理系统,它们各自有着独特的特性和功能。然而,由于历史原因或业务需求,有时需要在Oracle和PostgreSQL之间进行数据迁移或集成,这就涉及到两者...

    PostgreSQL 8.4官方开发文档A4

    - **2.7 聚合函数**:介绍常用的聚合函数及其用法。 - **2.8 更新数据**:教授如何更新表中的记录。 - **2.9 删除数据**:展示删除表中记录的命令。 - **高级特性**:介绍了PostgreSQL的一些高级功能。 - **3.1 ...

    postgresql-9.2.24-1-windows-x64-binaries.zip

    `createdb`和`psql`是常用的客户端工具,前者用于创建新的数据库,后者是交互式查询工具。 6. **安全性**:PostgreSQL支持多种身份验证方法,如MD5密码、SSL加密、信任模式等。在生产环境中,应合理设置权限和安全...

    PG多维存储、SQL流计算

    标题“PG多维存储、SQL流计算”涉及的是PostgreSQL数据库系统中的两个高级特性:多维存储和SQL流计算。PostgreSQL是一个开放源代码的对象关系型数据库系统,以其稳定性、扩展性著称。在这篇文章中,我们将讨论...

    php设计模式 Factory(工厂模式)

    在提供的代码中,定义了一个名为`DBFactory`的工厂类,其中有一个静态方法`create`用于根据不同的数据库类型(如"Mysql"、"Postgre"、"Mssql")来创建相应的数据库连接类(`MysqlDB`、`PostgreDB`、`MssqlDB`)的...

Global site tag (gtag.js) - Google Analytics