文章目录
1、postgresql介绍
PostgreSQL
是一个开源的对象-关系数据库系统,它强调扩展性、可靠性和高性能。它是基于Postgres
项目开发的,该项目最初由加州大学伯克利分校的计算机科学系开发。
2、PostgreSQL的特点
强大的功能和扩展性
:PostgreSQL
支持大量的高级特性,如全文搜索、数据分区、复杂的事件触发器等。它还提供了广泛的扩展机制,允许用户定义新的数据类型、函数等。
ACID兼容性
:PostgreSQL
完全支持ACID
(原子性、一致性、隔离性、持久性)事务,确保了数据操作的完整性和可靠性。
多版本并发控制(MVCC)
:PostgreSQL
使用MVCC
来管理并发事务,这提高了读操作的性能,尤其是在高并发场景下。
丰富的数据类型
:支持几乎所有标准SQL
数据类型,并且可以自定义数据类型,满足复杂的数据存储需求。
强大的全文搜索
:通过内置的文本搜索功能,PostgreSQL
可以高效地处理全文搜索需求。
地理空间支持
:内建的地理空间支持,包括对GIS
(地理信息系统)数据的存储和查询。
可扩展的架构
:PostgreSQL
的设计允许它在不牺牲性能的情况下进行水平扩展,通过添加更多的服务器到集群中实现。
开源和社区支持
:作为开源项目,PostgreSQL
拥有一个活跃的社区,不断提供新功能和改进。
3、PostgreSQL与其他数据库系统的比较
与MySQL
的比较:虽然MySQL
在某些方面(如易用性和默认安装配置)更受初学者欢迎,但PostgreSQL
在功能丰富性、可扩展性和性能上通常更胜一筹,尤其是在处理大规模数据和高并发事务时。
与Oracle
和SQL Server
的比较:Oracle
和SQL Server
是商业数据库系统,提供了企业级的功能和性能,但相比之下,PostgreSQL
在开源社区中得到了广泛的支持和定制化开发。在许多中小型企业或开发项目中,PostgreSQL
可以作为这些商业系统的有效替代品。
4、postgresql安装
4.1、拉取镜像
docker pull postgres
4.2、准备postgres配置文件
mkdir /data/postgres/data -p
4.3、启动postgres服务
docker run \
--name pgsql \
-e POSTGRES_PASSWORD="Abc1234%" \
-p 5432:5432 \
--restart always \
-v /data/pgsql/data:/var/lib/postgresql/data \
-d postgres
4.4、访问postgres
docker inspect postgres
docker exec -it pgsql /bin/bash
4.5、使用postgres
psql -U postgres
# 创建新数据库
CREATE DATABASE testdb;
# 创建新用户
CREATE USER testdb WITH ENCRYPTED PASSWORD '123456';
# 授予用户权限
GRANT ALL PRIVILEGES ON DATABASE mydb TO testdb;