PostgreSQL内部培训--第一天基础

上传人:灯火****19 文档编号:121019990 上传时间:2020-02-14 格式:PPT 页数:29 大小:1.01MB
返回 下载 相关 举报
PostgreSQL内部培训--第一天基础_第1页
第1页 / 共29页
PostgreSQL内部培训--第一天基础_第2页
第2页 / 共29页
PostgreSQL内部培训--第一天基础_第3页
第3页 / 共29页
PostgreSQL内部培训--第一天基础_第4页
第4页 / 共29页
PostgreSQL内部培训--第一天基础_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《PostgreSQL内部培训--第一天基础》由会员分享,可在线阅读,更多相关《PostgreSQL内部培训--第一天基础(29页珍藏版)》请在金锄头文库上搜索。

1、主讲 水木神风 postgresQL培训第一天基础 时间 2014 12 8 目录 PostgreSQL系统概述体系结构使用基础 pgadmin客户端使用 PostgreSQL系统概述 PostgresQL是什么PostgresQL历史PostgresQL发布历程PostgresQL版权许可PostgresQL数据库的架构PostgreSQL与MySQL开源的差别PostgreSQL企业特性PostgreSQL数据库全球使用情况 PostgresQL是什么 PostgreSQL对象 关系型数据库管理系统 有一段时间被称为Postgres95 是从伯克利写的POSTGRES软件包发展而来的 经过

2、十几年的发展 PostgreSQL是世界上可以获得的最先进的开放源码的数据库系统 它提供了多版本并行控制 支持几乎所有SQL构件 包括子查询 事务和用户定义类型和函数 并且可以获得非常广阔范围的 开发 语言绑定 包括C C Java perl tcl 和python PostgreSQL是自由免费的 并且所有源代码都可以获得 PostgreSQL的开发队伍主要为志愿者 他们遍布世界各地并通过互联网进行联系 这是一个社区开发项目 它不被任何公司控制 如果你在寻找PostgreSQL的掌门人 或是什么中央委员会 或是什么所属公司 你只能放弃了 因为一个也不存在 但我们的确有一个核心委员会和CVS管

3、理组 但这些工作组的设立主要是为了进行管理工作而不是对PostgreSQL进行独占式控制 PostgreSQL项目是由任何人均可参加的开发人员社区和所有用户控制的 你所需要做的就是订阅邮件列表 参与讨论即可 PostgreSQL历史 伯克利的POSTGRES项目 MichaelStonebraker领导的POSTGRES项目是由防务高级研究项目局 DARPA 陆军研究办公室 ARO 国家科学基金 NSF 以及ESL Inc共同赞助的 POSTGRES的实现始于1986年 第一个 演示性 系统在1987年便可使用了 并且在1988年的ACM SIGMOD大会上展出 在1989年六月发布了版本1给

4、一些外部的用户使用 用于源代码维护的时间日益增加占用了太多本应该用于数据库研究的时间 为了减少支持的负担 伯克利的POSTGRES项目在版本4 2时正式终止 Postgres95 在1994年 AndrewYu和JollyChen向POSTGRES中增加了SQL语言的解释器 并随后将Postgres95源代码发布到互联网上供大家使用 成为一个开放源码的 原先伯克利POSTGRES代码的继承者 PostgreSQL6 X 到了1996年 很明显的看出 Postgres95 这个名字已经不能经得起时间的考验了 于是起了一个新名字PostgreSQL用于反映最初的POSTGRES和最新的使用SQL的

5、版本之间的关系 同时版本号也重新从6 0开始 将版本号放回到最初的由伯克利POSTGRES项目开始的顺序中 PostgresQL历史 PostgresQL7 1 7 1是继6 5之后的又一个巨大的变化 她首先引入了预写式日志的功能 这样 事务就拥有了完善的日志机制 可以提供更好的性能 以及还可以实现更优良的备份和灾难恢复的能力 比如联机热备份和宕机后的自动恢复 其次是对文本类型的数据段的长度不再限制 从而很大程度上解决了PostgreSQL的大对象的问题 Postgres8 X 可以在windows下运行 事务保存点功能 改变字段的类型 表空间即时恢复 即时恢复允许对服务器进行连续的备份 你既

6、可以恢复到失败那个点 也可以恢复到以前的任意事务 新的Perl服务器端编程语言PostgreSQL9 XHOTstandby功能 PostgreSQL发布历程 PostgreSQL版权许可 PostgreSQL的发布遵从经典的BSD版权 它允许用户不限目的地使用PostgreSQL 甚至你可以销售PostgreSQL而不含源代码也可以 唯一的限制就是你不能因软体自身问题而向我们追诉法律责任 另外就是要求所有的软体拷贝中须包括以下版权声明 下面就是我们所使用的BSD版权声明内容 PostgreSQL资料库管理系统部分版权 c 1996 2005 PostgreSQL全球开发小组 部分版权 c 1

7、994 1996加州大学董事 Portionscopyright c 1996 2005 PostgreSQLGlobalDevelopmentGroupPortionsCopyright c 1994 6RegentsoftheUniversityofCalifornia 允许為任何目的使用 拷贝 修改和分发这个软体和它的文档而不收取任何费用 并且无须签署因此而產生的证明 前提是上面的版权声明和本段以及下面两段文字出现在所有拷贝中 Permissiontouse copy modify anddistributethissoftwareanditsdocumentationforanypur

8、pose withoutfee andwithoutawrittenagreementisherebygranted providedthattheabovecopyrightnoticeandthisparagraphandthefollowingtwoparagraphsappearinallcopies 在任何情况下 加州大学都不承担因使用此软体及其文档而导致的对任何当事人的直接的 间接的 特殊的 附加的或者相伴而生的损坏 包括利益损失的责任 即使加州大学已经建议了这些损失的可能性时也是如此 PostgresQL数据库的架构 postgresQL数据库是多进程的架构 每一个客户连接都有一

9、个服务进程为其服务 也有共享内存 这一点与Oracle数据库是相似的 PostgresQL使用一种客户端 服务器的模式 一个服务器进程 它管理数据库文件 接受来自客户端应用与数据库的连接 并且代表客户端在数据库上执行操作 数据库服务器程序叫postgres PostgresQL服务器可以处理来自客户端的多个并发请求 因此 它为每个请求启动 fork 一个新的进程 从这个时候开始 客户端和新服务器进程就不再经过最初的postgres进程进行通讯 因此 主服务器总是在运行 等待连接 而客户端及其相关联的服务器进程则是起起停停 所以PostgresQL对于大并发的处理能力比较强 同时能够充分利用现在

10、多核CPU的性能 PostgreSQL全球贡献者 CoreTeam成员JoshBerkus USA PostgreSQLExpertsInc 主要负责PG推广 性能测试 优化 文档编辑等工作 PeterEisentraut USA MeetM 主要负责了系统建设 移植 文档编辑 国际化 以及其他增强性的代码工作 MagnusHagander Sweden redpill linpro se 帮助维护PostgreSQLWEB主站及基础设施 win32的移植 以及系统认证等工作 TomLane USA Salesforce 遍及PostgreSQL代码的各个角落 包括BUG评估和修复 性能改进

11、优化等 BruceMomjian USA EnterpriseDB 负责维护TODO和FAQ列表 代码 发布版本补丁以及培训 DavePage UnitedKingdom EnterpriseDB 负责pgadmin的开发和维护工作 同时负责管理postgresql org主站工程 PostgreSQL的安装程序等 主要贡献者http www postgresql org community contributors Committers git gitmaster postgresql org postgresql git 目前有20位committer http wiki postgres

12、ql org wiki Committers PostgresQL与MySQL开源的差别 MySQL不是一个纯粹的开源数据库 MySQL数据库是一个公司的一产品 是一个公司做了绝大部分开发的工作 所以MySQL不是完全意义上的数据库 这是个劣势 不能得到绝大多数人的支持 或让社区更多人参与进来 PostgreSQL与MySQL不同 PostgreSQL一开始就是定位在ORACLE这些大数据库能做的事情 所以MySQL势力越来越小 而PostgreSQL却在变大 但随着时间的发展 谁都不知道会怎样MYSQL目标定位是在网络应用的用户层面上 而互联网企业要求的是一个快速反应时间和较小的用户量 但相

13、对大用户来说 MySQL就有点捉襟见肘 PostgresQL与mysql对比 PostgresQL与mysql对比 PostgresQL与mysql对比 PostgresQL与mysql对比 PostgresQL与mysql对比 进程模式与线程模式对比 PostgreSQL和oracle是进程模式 MySQL是线程模式 进程模式对多CPU利用率比较高 进程模式共享数据需要用到共享内存 而线程模式数据本身就是在进程空间内都是共享的 不同线程访问只需要控制好线程之间的同步 线程模式对资源消耗比较少 所以MySQL能支持远比oracle多的更多的连接 对于PostgreSQL的来说 如果不使用连接池

14、软件 也存在这个问题 但PostgreSQL中有优秀的连接池软件软件 如pgbouncer和pgpool 所以通过连接池也可以支持很多的连接 PostgreSQL缺点 与oracle和MySQL相比最大的缺点是人气不旺PostgreSQL中的中文资料远远少于oracle和MySQL PostgreSQL在国外使用还是比较广泛的 特别在日本 但在中国人气相对oracle和mysql还是有比较大的差距 只是近几年来 在国内使用PostgreSQL的公司也越来越多了 需要对vacuum做仔细的安排 特别对于更新频繁的数据库vacuum是由PostgreSQL多版本设计决定的 vacuum不能回收表已

15、经占用的空间 不支持裸设备要求OS下有一个健壮的文件系统 在Linux下我们一般选XFS 对于solaris下选ZFS oracle对裸设备有很好的支持 而MySQL的innodb引擎也可以放在裸设备下 但由于独享表空间必需是一个文件一张表 所以使用裸设备的管理成本也比较高 不支持converageindexscan由于索引中完全没有版本信息 不能实现Coverageindexscan 即查询只扫描索引 直接从索引中返回所需的属性 还需要访问表 对于类似selectcount fromtable的语句 PostgreSQL要比oracle慢 注 MySQL的selectcount 也不如ora

16、cle PostgreSQL不支持merge语句oracle支持merge语法 当插入时发生重复值时 可以更新旧行 而MySQL也提供了类似的语法 INSERT ONDUPLICATEUPDATE 这样在某些同步数据的场合有比较高的效率 PostgreSQL虽然也可以通过存储过程做到类似的功能 但一次只能操作一行 不能批量操作 PostgreSQL企业特性 安全性认证过程加密数据传输过程支持加密基于角色的权限控制稳定性良好的代码管理机制 代码风格统一 只有committer有权限提交代码 成熟的测试标准 Basicsystemtesting Regressiontestsuite Otherruntimetesting valgrind gprof oprofile unittesting staticanalysis modelchecking 可靠性WAL日志 确保已提交事务不会因为数据库崩溃导致信息丢失在开启归档以及基础备份的前提下 可以将数据库恢复到过去任意时间点可用性 暴力破坏演示 拔网线 拔电源 删数据文件 格式化硬盘 拔硬盘 拔存储光纤线 电击 地震 火烧 9 0开始支持

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号