基于 PostgreSQL 的关系数据库方案Kingsoft ~ KSO ~ 快盘
刘鑫 <[email protected]>
FAQ
• 什么是 PostgreSQL ?– 功能最丰富的关系型数据库。
• 一种新的数据库产品?– From INGRES Project...(1975~1977)– Postgres Project...(1983)– PostgreSQL (1995)
• 昂贵的产品?– BSD/MIT 类授权
• 社区是否有活力?– 历史最悠久的数据库项目和开源项目之一– 伯克利出品– 有成熟商业支持– 2008 ~ 2010 连续发布三个重要版本( 8.3/8.4/9.0 )
八卦—— PostgreSQL 战斗史
• 与 DB2 竞争 RDB 语言标准• 与 Oracle 竞争商用数据库领域• 与 MySQL 竞争 Web 应用领域• 与非关系型数据库竞争面向对象数据库应用• ……
PostgreSQL 的特色
• 强大的编程能力• 领先的事务实现• 出色的稳定性• 优秀的并发能力• 对各业务领域丰富的定向支持• 丰富的实施方案
PostgreSQL VS Oracle
• 实施 / 部署– 20MB (编译后尺寸 100MB ) vs 2GB– 可部署于几乎所有的 *nix 类系统,以及 windows– 无需停机部署,即装即用– 无需 GUI 引导,简单命令即可完成– 广泛的软件库支持
• 采购– 可使用开源版本– 低于 Oracle 1/2 的费用可以买到专业的商业支持和闭源功能
• 功能– 更为丰富的编程能力– 接近的性能– 一定伸缩性– 独具特色的运维能力
PostgreSQL vs MySQL
• 坚固可信的稳定性• 更易维护• 优秀的性能表现• 远超同侪的开发能力• 开放的社区文化
一些性能测试
http://www.blowfisher.net/gallery/v/pg-vs-mysql/
PostgreSQL vs MySQL
高并下发下的高性能
• PostgreSQL 在高并发大量联接的情况下,表现更为优异• 不会因为联接量高导致性能下降• 极少锁定,几乎不会出现死锁• 平稳支持各种 DML 操作和查询
高度可靠的数据库产品
• 可信的预写入机制• 并发读写时的版本合并和管理• 完备的事务支持
方便的运维机制
• 多种不同的认证和安全管理手段• 在线备份• 多种不同的热 /“ 温”备集群方案
– plproxy– pgstandby– slony-i– pgpool-II
• 空间碎片在线热回收– vacuum– 无锁 / 低锁定
完备的关系模型支持
• 主键• 序列器• 外键• 视图• 存储函数• 触发器• uuid• 约束
丰富的业务支持
• 数组• 字典• 自由文本 text• 几何类型• 网络地址 IP/MAC• 位映射• binary
强大的编程能力
• 完整支持 SQL 查询标准– 联接查询– 子查询– 集合计算
• 强大的文本处理能力– 正则表达式– lxml/lxslt
• 丰富的统计功能,可以胜任数据挖掘需求
强大的编程能力
• 强大的 plsql– 各种优雅的游标实现– return next/query– 面向对象的类型定义和管理能力
• 无限扩展的嵌入式语言– python– perl– sh– scheme– java– cpp– ...
丰富的架构方案
• 独立抽象的存储层,可以热伸缩• 商用级别的架构设计能力
– 主子表– 各种业务类型– 全文检索
• 实用的索引调优方案• 易操作的性能调优计划• 友好的系统集成• 可以应对各种不同领域
– 强可靠性的商务应用– 强调性能和扩展能力的互联网应用– 特定应用领域的定制需求
不足之处
• 商业产品往往有更到位的服务支持• 中文资源较少• MySQL 在一些运维监控工具上胜出
值得关注的 PostgreSQL 9
• 流式 pgstandby• 碎片回收的性能得到很大优化• 编程能力进一步增强• 分布式查询优化• 新的运维工具
谢谢大家