什么是PostgreSQL?比MySQL、Oracle强在哪( 三 )


另外 , 由于MySQL对SQL语法支持的功能较弱 , 基本上不适合做数据仓库 。 虽然也有些厂商开发了MySQL数据仓库的存储引擎(如Infobright) , 但这个方案只是解决了部分数据仓库的问题 , SQL功能弱的问题还是无法完全解决 。
而且Infobright的社区版本在功能上有很多限制 , 如不支持数据更新、不支持太多的并发执行(最多支持十几个)等 。 而PostgreSQL不仅支持复杂的SQL , 还支持大量的分析函数 , 非常适合做数据仓库 。
PostgreSQL数据库中还有一些支持移动互联网的新功能 , 如空间索引 。 PostGIS是最著名的一个开源GIS系统 , 它是PostgreSQL中的一个插件 , 在PostgreSQL中使用它很方便 。 通过PostGIS也可以很方便地解决LBS中的一些位置计算问题 。
综上所述 , PostgreSQL数据库是一个功能强大 , 又带有移动互联网特征的开源数据库 。
如果你仅仅是想把数据库作为一个简单的存储软件(一些大的互联网公司就是这样) , 一些较复杂的功能都想放在应用中来实现 , 那么选择MySQL或一些NoSQL产品都是合适的 。 如果你应用的数据访问很简单(如大多数的博客系统) , 那么后端使用MySQL也是很合适的 。
但是如果你的应用不像博客系统那么简单 , 又不想消耗太多的开发资源 , 那么PostgreSQL是一个很明智的选择 。 最有说服力的例子就是图片分享公司Instagram , 在使用“Python+PostgreSQL”架构后 , 只是十几个人就支撑了整个公司的业务 。
在数据库中使用PostgreSQL的感觉就像在开发语言中使用Python , 会让你的工作变得简洁和高效 。
2. PostgreSQL与Oracle数据库的对比
什么是PostgreSQL?比MySQL、Oracle强在哪文章插图
从功能上说 , PostgreSQL可以与Oracle数据库媲美 。 Oracle数据库是目前功能最强大的商业数据库 , PostgreSQL则是功能最强大的开源数据库 。 Oracle在集群功能如RAC、ASM方面比较强 , 但PostgtreSQL也有一些比Oracle强的特性 , 如在索引和可扩展等方面 。
PostgreSQL与Oracle有很多相似之处 , 它们都是使用共享内存的进程结构 , 客户端与数据库服务器建立一个连接后 , 数据库服务器就启动一个进程来为这个连接服务 。 这与MySQL的线程模型不一样 。
PostgreSQL与Oracle一样 , PostgreSQL的WAL日志与Oracle的Redo日志都是用于记录物理块数据的变化的 , 这与MySQL的binlog是不一样的 。
PostgreSQL在主备库方面非常完善 , 可以搭建同步备库、异步备库、延迟备库 , 在同步备库中可以配置数据同步到任意个备库上 。 只读备库在查询与应用日志的冲突解决方面提供了更多的参数控制 , 让DBA更容易控制只读备库的查询冲突 。 在配置备库的过程中 , PostgreSQL比Oracle简单很多 , 备库的搭建也更灵活 。
PostgreSQL与Oracle的不同之处在于 , PostgreSQL有更多支持互联网特征的功能 。 如PostgreSQL数据类型支持网络地址类型、XML类型、JSON类型、UUID类型以及数组类型 , 且有强大的正则表达式函数 , 如where条件中可以使用正则表达式匹配 , 也可以使用Python、Perl等语言写存储过程等 。
另外 , PostgreSQL更小巧 。 PostgreSQL可以在内存很小的机器上完美运行起来 , 如在512MB的云主机中 , 而Oracle数据库基本要在数GB的云主机中才可以运行起来 。
Oracle安装包动辄几个GB以上级别 , 而PostgreSQL的安装包只有几十MB大小 。 PostgreSQL在任何一个环境都可以轻松地安装 。 Oracle数据库安装花费的时间是在小时级别 , 而PostgreSQL在分钟级别就可以完成安装 。
关于作者:唐成 , 拥有20多年的数据库、操作系统、存储领域的工作经验 。 目前担任中启乘数科技CTO , 从事高性能、高可靠、高可用的分布式数据库的研究工作以及数据库内核的开发工作 。 历任过阿里巴巴的高级数据库专家和网易杭州研究院开发专家 。
本文摘编自《PostgreSQL修炼之道:从小工到专家》(第2版) , 经出版方授权发布 。
什么是PostgreSQL?比MySQL、Oracle强在哪文章插图
延伸阅读《PostgreSQL修炼之道:从小工到专家》
【什么是PostgreSQL?比MySQL、Oracle强在哪】推荐语:PostgreSQL中国社区数据库专家撰写 , PostgreSQL数据库领域经典著作 , 第2版全面升级 。