推荐书籍:
概念书籍:
《PostgreSQL Introduction and Concepts》
开发书籍:
《PostgreSQL开发必备参考手册》
管理类书籍:
《PostgreSQL 9 Administration Cookbook》
《PostgreSQL 9.0 High Performance》
《PostgreSQL Server Programming》
《How PostgreSQL Processes a Query》
了解内核 :
http://www.postgresql.org/developer/backend/
http://wiki.postgresql.org/wiki/Backend_flowchart
《数据库查询优化器的艺术:原理解析与SQL性能优化》 - 海翔老师
《 PostgreSQL 内核分析》 - 彭老师
官方手册:
http://www.postgresql.org/docs/
中文手册:
http://www.postgres.cn/document
培训类PPT:
《PostgreSQL Inside 系列》
《PostgreSQL DBA培训PPT》
代码树:
http://doxygen.postgresql.org/
代码提交集:
https://commitfest.postgresql.org/
项目GIT:
http://git.postgresql.org
PostgreSQL GITHUB镜像
https://github.com/postgres/postgres
PostgreSQL JDBC 驱动:
http://jdbc.postgresql.org
http://jdbc.postgresql.org/development/privateapi/
PostgreSQL ODBC 驱动:
http://www.postgresql.org/ftp/odbc/versions/src/
PostgreSQL 扩展插件:
http://pgfoundry.org
http://pgxn.org/
GUI工具(pgAdmin):
http://www.pgadmin.org/
安全漏洞:
http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=postgresql
中文社区:
http://bbs.pgsqldb.com
中文官网:
http://www.postgres.cn
国外FAQ社区, BLOG:
http://www.pgcon.org/
https://www.postgresql.us/
http://www.itpug.org/
http://www.pgug.de/
http://www.diapug.org/
http://stackoverflow.com/questions/tagged/postgresql
http://momjian.us
http://www.pgexperts.com
http://blog.2ndquadrant.com/en
一位社区兄弟ty4z2008整理的资料
https://github.com/ty4z2008/Qix/blob/master/pg.md
其他推荐网站:
http://db.cs.berkeley.edu
http://mariposa.cs.berkeley.edu/
http://www.postgresql.org
http://wiki.postgresql.org/wiki/Todo
http://wiki.postgresql.org/wiki/Development_information
http://wiki.postgresql.org
http://www.pgbuildfarm.org
https://github.com/aggregateknowledge/postgresql-hll
http://www.postgis.org/
http://workshops.opengeo.org/postgis-intro/
http://www.opengeospatial.org/
http://code.google.com
https://developers.google.com/
http://www.perzl.org/aix/
http://db-engines.com/en/
http://pgmag.org/
http://planet.postgresql.org/
http://www.cybertec.at/
http://www.translattice.com/
http://citusdata.com/
http://www.dbms2.com/
http://www.informationweek.com/
http://www.infoq.com/
http://www.actian.com/
http://aws.amazon.com/redshift/
http://sourceforge.net/projects/postgres-xc/
http://www.postgres-xl.org/
http://madlib.net/
http://research.google.com/index.html
http://postgresql.1045698.n5.nabble.com/
http://blog.163.com/digoal%40126
推荐PostgreSQL 专业群:
3336901
书籍打包下载:
如有需要请联系: 276732431, 或留言留下您的邮箱. 文件超过100MB, 邮箱需要支持大附件才能接收.
或者到以下网盘下载.
http://yun.baidu.com/share/link?shareid=3626307544&uk=1982970774
PostgreSQL 培训视频
http://www.tudou.com/home/digoal
视频下载地址
http://blog.163.com/digoal@126/blog/static/16387704020141229159715/
PostgreSQL TODO & 软肋,
大多数软件都有坑, 如果把握不好, 那就掉坑里去了, PostgreSQL亦如此, 为避免初次接触PostgreSQL的朋友掉坑里去, 这里罗列了一些PostgreSQL的软肋和TODO, 大家可以参考一下.
todo
1. http://wiki.postgresql.org/wiki/Todo
2. 基于WAL的多主复制(9.4可能会实现)
3. 多CPU资源利用, 如并行查询
4. shared nothing 架构(目前需要插件来实现如plproxy, pgpool-ii)
5. 基于块的增量基础备份(目前只有基于WAL的增量备份)
6. query cache, 如count(*)性能提升
7. toast 阈值可配置(目前只能在编译时指定)
8. 使用ssd作为二级缓存
9. PostgreSQL 目前一个集群只支持1个block_size, 这种不利于复杂场景的使用, 例如我们在同一个数据库中有大量的OLTP请求, 同时还有大数据的频繁导入需求的情况下, 选择小的block_size或者大的block_size都不合适, 如果能针对每个表指定不同的block_size的话可以很好的解决这一的问题. 当然如果数据库中存在不同大小的block_size, 那么随之而来的改动是非常大的, 例如shared buffer也必须兼容不同大小的block size.
在Oracle 9中, 支持一个数据库中存在不同的数据块大小.
10. PostgreSQL的配置文件是直接编辑的, 没有像oracle这样的spfile, 当然9.4会支持alter system来修改, 但是<=9.3的没有, 修改文件容易出错, 不安全, 错误的话会导致数据库集群无法启动.
11. 目前开源的postgresql不支持函数加密. 安全性较低.
12. 目前移动表空间(如alter table tbl set tablespace newtbs;)会产生大量的XLOG, 这个应该是可以优化的.
13. 流复制异步模式下, failover后, 可能因为主备xlog的差异需要重做standby. 目前可以通过rsync减少网络传输, 或者zfs snapshot来将OLD PRIMARY回退到以前的状态达到切换成standby的目的.
14. 没有表空间配额限制, 目前只能通过文件系统使用配额来简单的限制.
15. 没有rotate table, 类似mongoDB的capped collection. 限制记录条数, 空间, 或记录时长, 超过限制就覆盖最早的记录 .
16. pg-xc, pg-xl的数据重分布需要将数据从所有的数据节点加载到coordinator后, 在按照重分布算法分发到新的所有节点.
17. 同步流复制的一点可能可以改进的地方, 例如只有一台standby时, 如果standby异常或网络原因导致XLOG无法同步复制到standby并返回feedback的话, 那么在同步提交队列中等待提交的xact将处于等待状态, 一般的做法是使用2个或2个以上的standby来防止1个STANDBY故障时可以自动将同步standby节点向下转移, XACT不需要等待. 那么是不是可以有得选择, 例如在等待多少秒之后自动切换成异步模式.
18. 目前没有比较好的读写分离或shared-nothing解决方案, 例如
1. 通过中间件pgpool-II构建读写分离, 但是pgpool-II目前稳定性, 性能(tps)都不尽人意.
2. 使用pg-xc构建的shared-nothing, 性能(TPS)损耗太大, 同时全局一致性还原(PITR)目前还只有停留在创建barriers, 粒度无法达到gxid的粒度(因为每个节点各管各自的XID).
3. 使用plproxy构建shared-nothing, 性能损失小, 但是没有跨节点事务能力, 当然如果应用层愿意使用 2PC来实现的话, 也是可以的. 另外, 接口必须是PLPROXY函数, 所以对应用来说适配较差.
软肋
1. 读写并发管理通过新增行版本实现, 会带来垃圾数据, 对于非HOT更新的话, 还会引起索引更新, 导致索引更容易膨胀.
2. 显然这种MVCC机制不利于频繁更新的应用场景, 同一条记录被更新10次的话, 会产生10个版本的写xlog和heap page的IO, 同时在VACUUM的时候还需要写xlog以及heap page的IO. 这10个版本可能并不会同时存在, 但是却实实在在的产生了这些写IO.
3. 通过xid来识别版本, 且xid是32位存储, XID是需要复用的, 所以经过一定的事务分配后需要freeze, 当然此MVCC机制的好处也是有的, 例如锁粒度很小, 容易实现repeatable read和ssi. 会话层可实现跨越会话的一致性镜像等.
4. 同样MVCC带来的问题, 在大数据库中使用逻辑备份时(), 备份开始后产生的垃圾数据都无法被回收, 如果备份时间很长, 将导致数据库膨胀比较厉害, 同时也会影响对象的freeze. 所以对大库建议使用pitr备份方式.
5. one-by-one的扩展数据块使得对同一个对象进行大批量的并行数据导入的时候(例如并行COPY)会产生extend锁等待问题. 影响导入性能. 参见 : http://blog.163.com/digoal@126/blog/static/163877040201392641033482
相关推荐
Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL、SQLite、Oracle 及 PostgreSQL 资料库,让管理不同类型的资料库更加的方便。
这个“PostGreSQL资料.zip”压缩包文件包含了关于PostgreSQL查询优化的深入探讨,特别是通过《681205 PostgreSQL技术内幕:查询优化深度探索》这本书的多个部分。下面,我们将深入讲解PostgreSQL查询优化的相关知识...
PostgreSQL资料简介 通过企业数据库安装程序下载postgres 10和PgAdmin 4(在主课程页面上链接)后,使用setup_instructions.pdf。在此期间,系统将要求您将intro_to_postgres_setup.sql文件复制到PgAdmin 4查询工具...
【PostgreSQL教程PDF资料集合】是一个综合性的学习资源包,主要涵盖了PostgreSQL数据库系统的各种教程和参考手册。这个RAR压缩包包含多个PDF文件,旨在满足从初学者到高级用户的不同学习需求。 首先,我们来看...
PostgreSQL基础学习资料PostgreSQL基础学习资料PostgreSQL基础学习资料
PostgreSQL(postgresql-14.2.tar.gz),适用于Linux系统:PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库...
【PostgreSQL】是一种高度成熟且功能丰富的开源(对象-关系型)数据库管理系统,它在业界被认为是主流数据库之一,尤其在企业级应用中受到广泛青睐。PostgreSQL 的特性包括支持复杂查询、事务处理、多版本并发控制...
Navicat Premium 导航猫数据库管理 是一个可多重连线资料库的管理工具 Navicat Premium 导航猫数据库管理 可以让你以单一程式同时连线到MySQL SQLite Oracle 及 PostgreSQL资料库 让管理不同类型的资料库更加的方便 ...
**PostgreSQL:数据库管理系统概述** PostgreSQL,通常称为Postgres,是一种开源的对象关系数据库管理系统(ORDBMS),它以其强大的功能、稳定性和高度的可扩展性而受到全球开发者的广泛赞誉。这个“PostgreSQL从...
Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL、SQLite、Oracle 及 PostgreSQL 资料库,让管理不同类型的资料库更加的方便。Navicat Premium结合了...
NavicatPremium,Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL、SQLite、Oracle、MariaDB、Mssql、及PostgreSQL 资料库,让管理不同类型的资料库...
**PostgreSQL 全详细资料汇总** 在数据库领域,PostgreSQL 是一个备受推崇的开源关系型数据库管理系统(RDBMS)。其强大的功能、高度的稳定性和丰富的特性使其在各种规模的企业和项目中广泛应用。本资料汇总提供了...
PostgreSQL是一种开源的对象关系型数据库管理系统(ORM DBMS),它以其强大的功能、高度的可扩展性和稳定性在全球范围内被广泛使用。...无论你是新手还是经验丰富的DBA,这份手册都将是你不可或缺的参考资料。
**PostgreSQL和Greenplum学习资料概述** 在数据库领域,PostgreSQL和Greenplum是两个备受瞩目的系统,尤其在大数据处理和企业级应用中。PostgreSQL是一款强大的开源关系型数据库管理系统,以其高度的可扩展性和强大...
"PostgreSQL DBA认证 PGCE-E-092-中级SQL题目" PostgreSQL DBA认证 PGCE-E-092-中级SQL题目 PostgreSQL DBA认证PGCE-E-092-中级SQL题目是一个测试SQL掌握程度的题目,涵盖了PostgreSQL数据库管理系统的各种知识点...
这份文档是学习和运维PostgreSQL 8.3的重要参考资料,可以帮助用户快速熟悉和掌握数据库管理的各个方面。 通过阅读这份中文文档,无论是初学者还是经验丰富的DBA,都能深入理解PostgreSQL 8.3的精髓,有效地利用其...
PostgreSQL12.2 中文资料,包含翻译的PDF文档和HTML页面形式的资料。
Navicat Premium(导航猫数据库管理)是一个可多重连线资料库的管理工具,Navicat Premium(导航猫数据库管理)可以让你以单一程式同时连线到MySQL、SQLite、Oracle 及 PostgreSQL资料库,让管理不同类型的资料库更加的...
**PostgreSQL基础教程** PostgreSQL,通常简称为PG,是一种开源的关系型数据库管理系统(RDBMS),它以其强大的功能、高度的稳定性和优秀的性能而受到全球开发者和企业的青睐。本教程将带你深入理解PostgreSQL的...