PG三件套安装

type
status
date
slug
summary
tags
category
icon
password
PGgresql搭配redis数据库作为查询缓存,是因为pggresql开启查询缓存会导致性能问题,可以启用外部缓存提高灵活性,pggresql安全复杂性高,适用较为轻量安装,因为安装包小至几十兆,但运行内存不算扩展都有100M。

PostgreSQL 整体架构

PostgreSQL 作为一个单机的关系型数据库,与单机Oracle的架构是比较相似的,与MySQL的InnoDB引擎也比较像。据我目前的了解,单机数据库的整体架构都差不太多,都是包含一个主的进程,一些辅助进程,以及一个大的共享内存池。下面我们具体学习一下PG架构里面的这些部分。

Postgresql VS Oracle

Oracle数据库是目前功能最强大的商业数据库,PostgreSQL则是功能最强大的开源数据库。PostgreSQL与Oracle的不同之处在于,PostgreSQL有更多支持互联网特征的功能。如PostgreSQL数据类型支持网络地址类型、XML类型、JSON类型、UUID类型以及数组类型,且有强大的正则表达式函数,如where条件中可以使用正则表达式匹配,也可以使用Python、Perl等语言写存储过程等。PostgreSQL更小巧。PostgreSQL可以在内存很小的机器上完美运行起来,如在512MB的云主机中,而Oracle数据库基本要在数GB的云主机中才可以运行起来。Oracle安装包动辄几个GB以上级别,而PostgreSQL的安装包只有几十MB大小。PostgreSQL在任何一个环境都可以轻松地安装。Oracle数据库安装花费的时间是在小时级别,而PostgreSQL在分钟级别就可以完成安装。

Postgresql VS Mysql

Postgresql和Mysql都是开源数据库。功能强大:支持所有主流的多表连接查询的方式,如“Hash JOIN”“Sort Merge JOIN”等;字段类型还支持数组类型,甚至有一些业务功能都不再需要写代码来实现了,直接使用数据库的功能即可解决问题。性能优化工具与度量信息丰富:PostgreSQL数据库中有大量的性能视图,可以方便地定位问题(比如可以看到正在执行的SQL,可以通过锁视图看到谁在等待,以及哪条记录被锁定等)。PostgreSQL中设计了专门架构和进程用于收集性能数据,既有物理I/O方面的统计,也有表扫描及索引扫描方面的性能数据。在线操作功能好:PostgreSQL增加空值列时,本质上只是在系统表上把列定义上,无须对物理结构做更新,这就让PostgreSQL在加列时可以做到瞬间完成。PostgreSQL还支持在线建索引的功能,在创建索引的过程可以不锁更新操作。从PostgreSQL9.1开始,支持同步复制(synchronous replication)功能,通过Master和Slave之间的复制可以实现零数据丢失的高可用方案。 可以方便地写插件来扩展PostgreSQL数据库的功能:支持移动互联网的新功能,如空间索引。如果应用的数据访问很简单,那么后端使用MySQL也是很合适的。但是如果应用复杂,而且不想消耗太多的开发资源,那么PostgreSQL是一个很明智的选择。

进程架构

PostgreSQL是一个多进程架构的客户端/服务器模式的关系型数据库管理系统。PG数据库中的一系列进程组合进来就是PostgreSQL服务端。这些进程可以细分为以下几大类:
postgres server进程 -是PG数据库中所有进程的父进程。
backend进程 - 每个客户端对于一个backend进程,处于这个客户端中的所有请求。
background进程 - 包含多个后台进程,比如做脏块刷盘的BACKGROUND WRITER进程,做垃圾清理的AUTOVACUUM进程,做检查点的CHECKPOINTER进程等。
replication相关进程 - 处理流复制的进程。
background workder进程 - PG9.3版本增加,执行由用户自定义开发的逻辑。
notion image

Linux 上安装 PostgreSQL

开 PostgreSQL 官网 PostgreSQL: The world's most advanced open source database,点击菜单栏上的 Download ,可以看到这里包含了很多平台的安装包,包括 Linux、Windows、Mac OS等 。Linux 我们可以看到支持 Ubuntu 和 Red Hat 等各个平台,点击具体的平台链接,即可查看安装方法:
notion image
点击上图中的 file browser,我们还能下载 PostgreSQL 最新的源码。
notion image

Windows 上安装 PostgreSQL

这里使用 EnterpriseDB 来下载安装,EnterpriseDB 是全球唯一一家提供基于 PostgreSQL 企业级产品与服务的厂商。下载地址:Community DL Page
notion image
不会就全部勾选(这里我自己犯了个错,不知道这个安装程序也会自带pgadmin4安装程序,所以我已经自行安装了)
notion image
一直next,输入密码
notion image
默认端口5432
notion image
然后一直next,直到出现安装进度条
notion image
这下面是下载助手程序,不必安装,如果你要装扩展(比如GIS等等)还是建议勾上,我反正勾了
notion image
 
notion image
根据安装路径找到这个脚本,打开一直回车知道输入密码
就是说只用输入密码,其他默认就行
notion image
打开pdadmin4 点击servers(1)会让你再次输入密码连接postgresql数据库
notion image

配置环境变量

notion image
环境变量里面设置主要是两个目录 bin 和 data
打开cmd窗口,输入psql -U user -W -d ccgm_rhs,输入口令,就会连接到相应的数据库
参数解释:
 
  • U:用户名
  • W:密码
  • d:数据库名称
 

GIS安装

利用stack builder安装可能会有点卡顿,多试几次
notion image
如何一直next直到安装成功就行
notion image

postgresql和mysql 命令上的区别

PostgreSQL 和 MySQL 是两种流行的开源关系型数据库管理系统,它们在命令行中的操作有一些区别。以下是一些 PostgreSQL 和 MySQL 命令行之间的主要不同之处:
  1. 连接到数据库
      • PostgreSQL:
        • MySQL:
          注意 PostgreSQL 使用 -d 选项指定要连接的数据库,而 MySQL 使用 -p 选项来提示您输入密码。
      1. 列出数据库
          • PostgreSQL:
            • MySQL:
          1. 切换数据库
              • PostgreSQL:
                • MySQL:
              1. 列出表
                  • PostgreSQL:
                    • MySQL:
                  1. 显示表结构
                      • PostgreSQL:
                        • MySQL:
                      1. 退出命令行
                          • PostgreSQL:
                            • MySQL:
                              •  
                                 

                        导出mysql数据库到postgresql

                        要从MySQL数据库导出数据,您可以使用命令行工具 mysqldump。以下是一些常用的 mysqldump 命令示例,以导出MySQL数据库中的数据:
                        1. 导出整个数据库
                          1. 这将导出整个数据库,并将数据保存到名为 backup.sql 的SQL文件中。您需要提供数据库用户名 (your_username) 和密码,以及要导出的数据库名称 (your_database)。
                        1. 导出特定表
                          1. 这将导出特定表 (your_table) 的数据,并将数据保存到名为 table_backup.sql 的SQL文件中。
                        1. 导出多个表
                          1. 如果要导出多个表,可以在 mysqldump 命令中列出这些表的名称:
                            这将导出列出的多个表的数据,并将数据保存到名为 multi_table_backup.sql 的SQL文件中。
                        1. 导出整个数据库,但不包括CREATE DATABASE语句
                          1. 这将导出整个数据库的数据,但不包括 CREATE DATABASE 语句,将数据保存到名为 no_create_db_backup.sql 的SQL文件中。
                        1. 导出整个数据库结构(不包括数据)
                          1. 这将导出整个数据库的结构(表、索引等),但不包括数据,将数据保存到名为 structure_only_backup.sql 的SQL文件中。
                        请替换上述命令中的 your_usernameyour_databaseyour_table 为您的实际数据库用户名、数据库名称和表名称。在运行这些命令时,系统将提示您输入数据库密码。导出的数据将保存在指定的SQL文件中,您可以将该文件用于备份或迁移数据。
                        如何让ChatGPT回答无限制 绕开ChatGPT回答限制的方法(已经失效)pip配置源及源收录