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版本增加,执行由用户自定义开发的逻辑。
Linux 上安装 PostgreSQL
开 PostgreSQL 官网 PostgreSQL: The world's most advanced open source database,点击菜单栏上的 Download ,可以看到这里包含了很多平台的安装包,包括 Linux、Windows、Mac OS等 。Linux 我们可以看到支持 Ubuntu 和 Red Hat 等各个平台,点击具体的平台链接,即可查看安装方法:
点击上图中的 file browser,我们还能下载 PostgreSQL 最新的源码。
Windows 上安装 PostgreSQL
这里使用 EnterpriseDB 来下载安装,EnterpriseDB 是全球唯一一家提供基于 PostgreSQL 企业级产品与服务的厂商。下载地址:Community DL Page。
不会就全部勾选(这里我自己犯了个错,不知道这个安装程序也会自带pgadmin4安装程序,所以我已经自行安装了)
一直next,输入密码
默认端口5432
然后一直next,直到出现安装进度条
这下面是下载助手程序,不必安装,如果你要装扩展(比如GIS等等)还是建议勾上,我反正勾了
根据安装路径找到这个脚本,打开一直回车知道输入密码
就是说只用输入密码,其他默认就行
打开pdadmin4 点击servers(1)会让你再次输入密码连接postgresql数据库
配置环境变量
环境变量里面设置主要是两个目录 bin 和 data
打开cmd窗口,输入psql -U user -W -d ccgm_rhs,输入口令,就会连接到相应的数据库
参数解释:
- U:用户名
- W:密码
- d:数据库名称
GIS安装
利用stack builder安装可能会有点卡顿,多试几次
如何一直next直到安装成功就行
postgresql和mysql 命令上的区别
PostgreSQL 和 MySQL 是两种流行的开源关系型数据库管理系统,它们在命令行中的操作有一些区别。以下是一些 PostgreSQL 和 MySQL 命令行之间的主要不同之处:
- 连接到数据库:
- PostgreSQL:
- MySQL:
注意 PostgreSQL 使用
-d
选项指定要连接的数据库,而 MySQL 使用 -p
选项来提示您输入密码。- 列出数据库:
- PostgreSQL:
- MySQL:
- 切换数据库:
- PostgreSQL:
- MySQL:
- 列出表:
- PostgreSQL:
- MySQL:
- 显示表结构:
- PostgreSQL:
- MySQL:
- 退出命令行:
- PostgreSQL:
- MySQL:
导出mysql数据库到postgresql
要从MySQL数据库导出数据,您可以使用命令行工具
mysqldump
。以下是一些常用的 mysqldump
命令示例,以导出MySQL数据库中的数据:- 导出整个数据库:
这将导出整个数据库,并将数据保存到名为
backup.sql
的SQL文件中。您需要提供数据库用户名 (your_username
) 和密码,以及要导出的数据库名称 (your_database
)。- 导出特定表:
这将导出特定表 (
your_table
) 的数据,并将数据保存到名为 table_backup.sql
的SQL文件中。- 导出多个表:
如果要导出多个表,可以在
mysqldump
命令中列出这些表的名称:这将导出列出的多个表的数据,并将数据保存到名为
multi_table_backup.sql
的SQL文件中。- 导出整个数据库,但不包括CREATE DATABASE语句:
这将导出整个数据库的数据,但不包括
CREATE DATABASE
语句,将数据保存到名为 no_create_db_backup.sql
的SQL文件中。- 导出整个数据库结构(不包括数据):
这将导出整个数据库的结构(表、索引等),但不包括数据,将数据保存到名为
structure_only_backup.sql
的SQL文件中。请替换上述命令中的
your_username
、your_database
和 your_table
为您的实际数据库用户名、数据库名称和表名称。在运行这些命令时,系统将提示您输入数据库密码。导出的数据将保存在指定的SQL文件中,您可以将该文件用于备份或迁移数据。Last update: 2023-08-09
type
status
date
slug
summary
tags
category
icon
password
这里是关于我笔记,希望你能获取到你想要的知识 🧐