PostgreSQL 创建表,常规表、外部表、分区表区别讲解
- 创建表,常规表、外部表、分区表区
- 一、常规表
- 1. 定义和特点:
- 2. 适用场景:
- 二、外部表
- 1. 定义和特点:
- 2. 适用场景:
- 三、分区表
- 1. 定义和特点:
- 2. 适用场景:
创建表,常规表、外部表、分区表区
在 PostgreSQL 中,创建表时的 “常规”、“外部” 和 “分区” 区别和使用场景讲解。
一、常规表
1. 定义和特点:
- 常规表是最常见的表类型,它在数据库中以传统的方式存储数据。
- 数据存储在数据库文件系统中,由 PostgreSQL 服务器直接管理。
- 常规表可以包含各种数据类型的列,并且可以通过 SQL 语句进行插入、更新、删除和查询操作。
2. 适用场景:
- 当数据量相对较小,且不需要特殊的存储方式或性能优化时,常规表是一个合适的选择。
- 对于简单的应用程序或小型项目,常规表可以满足大多数数据存储需求。
- 例如,一个小型的博客系统,文章表和用户表可以使用常规表来存储数据。
二、外部表
1. 定义和特点:
- 外部表允许 PostgreSQL 从外部数据源(如文件、其他数据库或网络服务)读取数据,而不是直接存储在数据库内部。
- 外部表通过定义一个外部数据包装器(Foreign Data Wrapper,FDW)来连接到外部数据源,并指定数据的格式和访问方式。
- 外部表可以像常规表一样进行查询,但不能进行插入、更新或删除操作,除非外部数据源支持这些操作。
2. 适用场景:
- 当需要访问外部数据源的数据,而又不想将数据导入到数据库中时,可以使用外部表。
- 例如,从一个 CSV 文件或其他数据库中读取数据进行分析,而不需要将数据永久存储在 PostgreSQL 数据库中。
- 对于数据仓库或数据分析场景,外部表可以方便地集成来自不同数据源的数据。
三、分区表
1. 定义和特点:
- 分区表是将一个大表分成多个较小的子表,称为分区。每个分区可以独立存储和管理,提高查询性能和数据管理效率。
- 分区可以基于一个或多个列的值进行划分,例如按照时间范围、地理位置或其他业务逻辑进行分区。
- 分区表可以使用不同的存储参数和索引策略,以满足不同分区的性能需求。
2. 适用场景:
- 当表中的数据量非常大,查询性能成为问题时,可以考虑使用分区表。
- 例如,一个日志表,每天的数据量很大,可以按照日期进行分区,查询特定日期范围内的日志时,只需要访问相应的分区,提高查询性能。
- 对于数据归档和历史数据管理,分区表也非常有用。可以将旧数据移动到单独的分区,以便进行备份、删除或压缩。
当从主表根据分区条件创建分区表后:
一、分区表中的数据情况创建分区表时,如果分区条件指定的范围内的数据在主表中存在,这些数据会自动被
移动
到相应的分区表中。
例如,如果按照日期进行分区,创建一个分区表对应特定日期范围,而主表中已经有符合该日期范围的数据,那么在创建分区表后,这些数据会出现在分区表中。二、主表中的数据情况
主表中符合分区条件的数据会被
移除
,转移
到相应的分区表中。
但是主表本身依然存在,只是不再包含已经被转移到分区表中的那些数据。
主表可以继续接收新的数据插入,如果新插入的数据符合分区条件,也会被自动分配
到相应的分区表中。