postgresql 的 主要优点
1.维护者是PostgreSQL Global Development Group,首次发布于1989年6月。
2.操作系统支持WINDOWS、Linux、UNIX、MAC OS X、BSD。
3.从基本功能上来看,支持ACID、关联完整性、数据库事务、Unicode多国语言。
4.表和视图方面,PostgreSQL支持临时表,而物化视图,可以使用PL/pgSQL、PL/Perl、PL/Python或其他过程语言的存储过程和触发器模拟。
5.索引方面,全面支持R-/R+tree索引、哈希索引、反向索引、部分索引、Expression 索引、GiST、GIN(用来加速全文检索),从8.3版本开始支持位图索引。
6.其他对象上,支持数据域,支持存储过程、触发器、函数、外部调用、游标
7.数据表分区方面,支持4种分区,即范围、哈希、混合、列表。
8.从事务的支持度上看,对事务的支持与MySQL相比,经历了更为彻底的测试。
9.My ISAM表处理方式方面,MySQL对于无事务的MyISAM表,采用表锁定,1个长时间运行的查询很可能会阻碍对表的更新,而PostgreSQL不存在这样的问题。
10.从存储过程上看,PostgreSQL支持存储过程。因为存储过程的存在也避免了在网络上大量原始的SQL语句的传输,这样的优势是显而易见的。
11.用户定义函数的扩展方面,PostgreSQL可以更方便地使用UDF(用户定义函数)进行扩展。
安装包下载
PostgreSQL 的 应用劣势
1.最新版本和历史版本不分离存储,导致清理老旧版本时需要做更多的扫描,代价比较大但一般的数据库都有高峰期,如果合理安排VACUUM,这也不是很大的问题,而且在PostgreSQL9.0中VACUUM进一步被加强了。
2.在PostgreSQL中,由于索引完全没有版本信息,不能实现Coverage index scan,即查询只扫描索引,不能直接从索引中返回所需的属性,还需要访问表,而Oracle与Innodb则可以。
PostgreSQL 的体系结构
PostgreSQL 的体系结构是以客户端-服务器模型为基础的。它包括以下核心组件:
客户端:用户通过客户端连接到 PostgreSQL 服务器来执行查询和操作数据库。
PostgreSQL 服务器:服务器接收客户端请求,并负责处理和执行 SQL 查询、管理事务、处理并发和数据存储等。
后台进程:这些进程负责管理数据库的不同方面,例如自动化备份、日志记录、统计信息收集和查询优化等。
共享缓冲区:服务器使用共享缓冲区来提高性能,将常用的数据存储在内存中,加快数据访问速度。
PostgreSQL 的核心功能
PostgreSQL 提供了丰富的核心功能,使其成为广泛使用的数据库解决方案。以下是几个重要的核心功能:
高级查询功能:PostgreSQL 支持复杂的 SQL 查询,包括联接、子查询、聚合函数、窗口函数等。同时它还支持全文搜索、地理空间数据处理和图形数据分析等扩展功能。
完整性约束:PostgreSQL 允许定义各种完整性约束,例如主键、唯一约束、外键和检查约束,以保证数据的完整性和一致性。
触发器和存储过程:PostgreSQL 支持触发器和存储过程,允许在插入、更新或删除数据时执行自定义的业务逻辑。
并发控制:借助多版本并发控制(MV***)技术,PostgreSQL 实现了高度并发的读写操作,避免数据锁定和读写冲突。
复制和高可用性:PostgreSQL 支持数据复制和流复制,可以创建热备份和实现高可用性架构。
扩展性:通过提供扩展机制,用户可以自定义和使用各种插件和扩展,从而增强 PostgreSQL 的功能。
PostgreSQL 的适用场景
由于其灵活性和可定制性,PostgreSQL 在多个应用场景中得到广泛应用。以下是几个常见的应用场景:
Web 应用程序:PostgreSQL 提供了可靠、高性能的数据库解决方案,适用于开发 Web 应用程序和电子商务平台。
地理信息系统:借助 PostGIS 扩展,PostgreSQL 可以有效地存储和查询地理空间数据,并支持空间分析功能。
数据仓库和大数据分析:PostgreSQL 具有处理复杂查询和大规模数据集的能力,适用于构建数据仓库和进行数据分析。
物联网(IoT)应用:由于其稳定、高可靠的特性,PostgreSQL 适用于处理大量传感器数据和实时事件。
安装部署
下载地址
下载后点击exe安装包
设置的data存储路径
设置密码
设置端口
安装完毕,配置PGSQL的ip远程连接,pg_hba.conf,postgresql.conf,需要更改这两个文件
pg_hba.conf
最后增加一行
host all all 192.168.0.1/24 trust
postgresql.conf 找到如下配置
listen_addresses
将listen_addresses改成listen_addresses=‘*’
重启windows pgsql服务或者重启pgsql