PostgreSQL 数据库简介及其生态

PostgreSQL 数据库简称 Postgres(后面简称 pg),是一个强大的 SQL 数据库,可以说是主流数据库中最符合 SQL 标准规范的实现。pg 的性能非常优秀,并且在极限压力的情况下依旧能保持稳定的性能。除此之外,pg 还支持多种复杂类型,比如 JSON 和 Hive,并拥有丰富的插件生态,著名的 GIS 插件 PostGIS 便是其中之一。

安装和使用

以 Ubuntu 14.04 为例:

sudo apt-get update
sudo apt-get install postgresql\  # 安装 pg
     postgresql-contrib  # 安装 pg 相关工具

角色和数据库

pg 使用“角色”这一概念来认证身份,在某些方面,这和 Unix 用户系统很像,不过 pg 并不区分用户和用户组,只拥有“角色”这一区分方式。

上面的安装完成后,安装程序会自动创建一个名为 postgres 的用户,你应该尽可能地使用该用户操作数据库:

sudo -i -u postgres     # 切换到 postgres 终端环境

你也可以使用命令手动创建用户/角色:

createuser --interactive

控制程序

安装完 pg 后还提供了很多管理程序,比如 createdbdropdbpg_* 等等。它们的作用如下:

命令 作用
clusterdb 群集一个 PostgreSQL 数据库
createdb 创建一个新 PostgreSQL 数据库
createlang 安装一个 PostgreSQL 过程语言
createuser 创建一个新的 PostgreSQL 用户帐户
dropdb 删除一个 PostgreSQL 数据库
droplang 删除一个 PostgreSQL 过程语言
dropuser 删除一个 PostgreSQL 用户账户
ecpg 嵌入的 SQL C 预处理器
initdb 创建一个新的 pg 数据库集群 cluster
pg_basebackup 做一个 PostgreSQL 集群的基础备份
pg_config 检索已安装的 PostgreSQL 版本信息
pg_controldata 显示一个 PostgreSQL 数据库集群的控制信息
pg_ctl 初始化、启动、停止、或者控制 pg 服务器
pg_dump 将一个 PostgreSQL 数据库转储到一个脚本文件或者其它归档文件中
pg_dumpall 将一个 PostgreSQL 数据库集群转储到一个脚本文件中
pg_isready 检查 PostgreSQL 服务器的连接状态
pg_receivexlog PostgreSQL 集群中的流事务日志
pg_resetxlog 重置一个数据库集群的预写日志以及其它控制内容
pg_restore pg_dump 创建的备份文件中恢复 PostgreSQL 数据库
pg_start 启动 pg 服务
pg_stop 停止 pg 服务
pg_upgrade 升级 pg 数据库文件
postgres pg 数据库服务器
postmaster 管理 pg 数据库服务器
psql PostgreSQL 交互终端
reindexdb 重建 PostgreSQL 数据库索引
vacuumdb 收集垃圾并分析一个 PostgreSQL 数据库

元指令 Meta-command/slash command/backslash command

使用 psql 程序连接进入数据库后可以使用 \ 开头的指令,比如 \h 显示帮助,\d 显示数据库结构。

常用命令对照表

命令 作用
\c / \connect [数据库连接字符] 连接数据库
\C [title] 设置打印的 caption
\cd [dir] 切换工作目录
\copy [some query] 复制表内容
\d[S+] [ pattern ] 显示符合 pattern 规则的所有关系(表、视图、索引、序列以及外键)
\password [ username ] 修改特定用户的密码,默认是当前用户
\q/quit 退出

集群解决方案 Postgres-XC

早期的 pg 是没有集群的,这也是当时 MySQL 的一大优势所在,直到 Postgres-XC 的出现。Postgres-XC 是一个开源的 pg 集群解决方案,拥有可扩展的写性能、对称同步等特性,你可以将其安装在多台机器或者虚拟机上。

PostGIS

PostGIS 是 pg 的一个空间数据插件,提供地理信息数据的存储和查询能力。

pgRouting

pgRouting 基于 PostgreSQL 和 PostGIS 提供了地理位置引路系统。

核心功能:

  • 所有最短路径组合(Johnson 算法)
  • 所有最短路径组合(Floyd-Warshall 算法)
  • 最短 A* 路径
  • 双向 Dijkstra 最短路径
  • 双向 A* 最短路径
  • Dijkstra 最短路径
  • 行车距离
  • K-最短路径,多候选路径
  • K-Dijkstra,一对多最短路径
  • 旅行销售人员(Traveling Sales Person)
  • TRSP(Turn Restriction Shortest Path)
Kane Blueriver all right reserved,powered by Gitbook最近修改时间: 2018-05-21 17:28:09

results matching ""

    No results matching ""