数据库系列
文章目录
前言
1、PostgreSQL特点
很早之前就听过 PG【PostgreSQL】 数据库,它性能很强,可以和 Oracle 相提并论,国内也能听到说要“去O化”,什么意思呢?
Oracle在国内用户还是最多的,目前来说国内数据库使用量最多的是 MySQL,第二个就是 Oracle 了,而 MySQL 说白了也是被 Oracle 控制了,后面能不能顺利使用还是未知数。
哪凭啥说 PostgreSQL 是开源界的 Oracle 呢,也是 去O首选呢?
- PG数据库 是完全开源免费的,这就很香啊!在灵活的
BSD 许可证
下发行,可以拿来任意使用、修改和二次开发。【这是很重要的】 - PG 还遵循了
SQL标准
,有丰富的数据类型
,包括几何、时间戳、数组等;而且还提供了对 JSON类型的原生支持;内置了全文搜索功能
,在大量文本数据中进行搜索变得简单而高效。 - PG 有足够的
安全性
,可靠性
和稳定性
,包括SSL支持、角色和权限等,也支持多种索引
方法,包括熟悉的 B树、哈希等。 - PG 对于
夸平台
的支持;允许使用 PL/PGsql来编写存储过程和函数;支持表分区
,有助于管理和优化大型表的性能。
2、PostgreSQL和MySQL对比
PG 优于 MySQL:
- 在SQL的标准实现上比 MySQL完善,功能实现严谨;
- 对表连接比较完整,优化器功能完善,支持多种索引类型,对复杂的查询能力较强;
- 主备属于物理复制,相对于MySQL的 binlog 逻辑复制,更加可靠,性能更高,影响更小;
- 特别的一点,PostgreSQL 支持 JSON 和 其他 NoSQL 功能,特别是 10 版本 JSONB 更加功能更加强大;
- PostgreSQL完全免费,而且是BSD协议,也可以二次开发用于商业也没事;
MySQL优于 PG:
- MySQL 引擎 innerDB 基于MVCC机制,而 PG 是新老数据一起存放并基于 XID 的 MVCC 机制,占优势;
- MySQL 采用索引组织表,非常适合基于主键匹配的增删改查操作,但是对于表设计有约束;
- MySQL优化器简单,表、运算符、数据类型的实现都很精简,非常适合简单的查询操作;
- MySQL 国内比较流行,但是我感觉这不是长久的事情;
一、PG数据库下载
1.1 版本选择
Linux 下载镜像地址:https://www.postgresql.org/download/
选择要安装的系统,我安装 Linux (CentOS)的,如图:
再选择 CentOS 的版本,如图:
可以发现,官网以及给出了安装使用的命令了,如下:
# Install the repository RPM:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# Disable the built-in PostgreSQL module:
sudo dnf -qy module disable postgresql
# Install PostgreSQL:
sudo dnf install -y postgresql16-server
# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16
1.2 版本需注意
注意:选择版本要谨慎!!!
对于系统版本的选择,我之前选择了 CentOS 7,发现安装的时候总会有如错误提示:
错误:为仓库 ‘pgdg-common’ 下载元数据失败 : repomd.xml GPG signature verification error: Bad GPG signature 或者提示 Not Found 等错误,及时清理 yum 缓存等也无济于事,况且CentOS 7 目前已经进入维护阶段,不再提供新功能,只提供安全更新和维护支持。
二、PG数据库安装及配置
官网已经提供了标准的安装命令,我们就按照标准命令进行安装。
2.1 Install the repository RPM【安装库】
运行命令:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
我用 Rocky 版本安装成功了,如图:
2.2 Disable the built-in PostgreSQL module【禁用内置版本】
那为什么要做这一步呢?
是因为可能一些系统自带了比较旧版本的 PostgreSQL,就会导致安装新版本的 PostgreSQL 时发生冲突;这样可以避免潜在的冲突和问题,确保能够顺利安装最新版本的 PostgreSQL。
sudo dnf -qy module disable postgresql
2.3 Install PostgreSQL【安装】
dnf install -y postgresql16-server
如果看到如下提示信息,说明安装成功了。
2.4 Initialize the database【初始化库】
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
2.5 Enable automatic start【开启开机启动】
sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16
2.6 修改账号密码
PostgreSQL 安装成功后,会默认创建一个名为 postgres 的 Linux 系统用户;在初始化数据库操作【2.4 小节】后,会有名为 postgres 的数据库,来存储数据库基本信息【eg:用户信息等】,数据库中会初始化一个超级用户,名曰 postgres
, 为了方便管理,进行密码修改。
ALTER USER postgres WITH PASSWORD 'postgres';
2.7 配置IP和远程访问
修改监听配置,命令如下:
#默认listen_addresses配置是注释掉的,所以可以直接在配置文件开头加入该行:
listen_addresses=‘*’
vim /var/lib/pgsql/16/data/postgresql.conf
允许所有 IP 访问,配置如下:
host all all 0.0.0.0/0 scram-sha-256
vim /var/lib/pgsql/16/data/pg_hba.conf
三、连接测试【成功】
安装启动成功之后,用 DG工具【DataGrip】来连接试试!
四、小结
PostgreSQL 被称为开源【BSD许可证】界的 Oracle,是去 O 首选,处理开篇提到的各种好处,开放免费的,还有就是 PostgreSQL 的社区比较完善,是一个纯社区,支持 PostgreSQL 的大部分是 最终用户,还有服务提供商、数据厂商和云厂商等,所以没有哪家公司可以完全独吞 PostgreSQL。
而且 PostgreSQL 有组织有纪律,有完善的组织结构等,所以 PostgreSQL 还是相当值得去学习的。
PostgreSQL官网:https://www.postgresql.org/
PostgreSQL中文社区:http://www.postgres.cn/v2/home
全球数据库排行:https://db-engines.com/en/
国产数据库排行:https://www.modb.pro/dbRank
点击【YPhen聊码】同步更新,欢迎━(`∀´)ノ亻!来聊!!!