PostgreSQL问题

PostgreSQL数据库有一定了解, 或者尝到甜头的朋友大多都会有这样的疑问, 为什么PostgreSQL好用却没有MySQL流行呢?
1 PGMySQL流行的原因
因为没有使用过MySQL,所以不太好回答.
 
2 PG的优势有哪些?(请例举您认为的最优优势的5条,降序排列)
1.社区活跃(每天都有commit,每年全球大会,每年全球地方性会议等),运作稳定(主要贡献者来自全球的诸多行业的诸多企业,不会出现一家独控的局面), git版本管理, wiki知识库管理, BSD许可.
 
2.血统纯正,以及丰富的第三方插件.PostgreSQL的分支只有1个,不会出现分支众多,版本不统一的情况.第三方插件非常多,基本上都来自实际的需求.
postgreSQL插件的使用非常简单,因为是模块化形式的,安装好后,加载到动态链接库即可.(包括性能,功能扩展,融合,管理等方面的插件.)
 
3.流复制,外部表接口, MPP, shared nothing
PG的流复制是基于块的变更,速度极其之快,局域网内能实现毫秒级的延迟,广域网也不需要担心网络稳定性,因为是续传的.流复制可用于HA,容灾,读写分离等场景.
9.4版本还会引入逻辑流复制,可用于multi master的场景.
PG支持外部表接口,PG中可以直接读写其他数据源的数据,Oracle,MySQL.适合混杂场景的使用,或者数据迁移场景的使用.
MPP,PostgreSQL的第三方插件或者第三方商业软件可以实现MPP的功能,例如GreenPlum,PgPOOL-II, pg-xc, citusDB, postgres-xl等,还可以结合HADOOP来使用.
shared nothing, postgresql第三方插件可以方便的实现shared nothing的功能,例如plproxy, pgpool-ii, pg-xc等.
 
4.数据类型丰富,索引类型丰富,可动态加载的模块,丰富的服务端函数
PG的数据类型非常的丰富,同时支持自定义类型.除了传统的数据类型之外,还支持例如range类型, IP类型, HSTORE类型, JSON类型, 
PG的索引访问接口也非常丰富,例如支持btree, hash, gist, gin, spgist等诸多索引访问接口.
可动态加载的模块,用户可自定义一些库,在需要使用时动态加载.同时PG支持自定义钩子应用的场景(_PG_init()).
丰富的服务端函数,例如plpgsql, plpython, plperl, pltcl, pl-R, pljava, plv8, C等.适用各种开发人员使用.
 
5.兼容性,稳定性,可靠性,性能,后期维护,审计需求等.
PG的兼容性非常好,支持几乎所有的硬件架构和操作系统.
稳定,可靠,性能卓越.
维护简单,诸多功能可以满足审计需求.
 
3 PG在互联网/传统行业(有事务需求)/或其它行业的未来?
国内PG圈子越来越活跃,包括传统行业,金融行业,运营商,互联网行业,政府都有使用. 
由于数据库在业务系统中的重要性,一般曾经未使用PG的公司会从不太重要的新项目着手尝试使用PG,尝到甜头后才会有后续大规模应用的动作.
老的项目,从其他数据库迁移到PG的,肯定是这些已有的数据库无法满足现阶段或未来的需求.例如可能是迫于成本的考虑,又或者项目中依赖PG的一些特性.

猜你喜欢

转载自ihuning.iteye.com/blog/2246841