作者anecdotes (C++)
看板MIS
标题[心得] 推荐大家使用PostgreSQL
时间Thu Sep 18 14:53:50 2014
PostgreSQL的台湾用户好像很少。
这是2012-1-19在某网站发表的部落格文章,有7257个访客,是还没破的自己最高记录。
该网站改变政策,把「非相关人士」的文章冰冻起来。来这里转贴。
----开始----
已经不记得用了多久的PostgreSQL了!从可以找到的最早记录是1998年。当时,open source的资料库管理系统(Database Management System,DBMS)群雄还有mSQL和mySQL。我选择PostgreSQL的理由很简单:PostgreSQL的功能最先进。
做决定的当时,PostgreSQL已经具有function(或称之为「stored procedure」)和sub-query的能力了,其余open source的DBMS都没有这两个功能。同时期,即使是tiptop使用的Informix 4.1也没有sub-query和stored procedure的能力。当时,DHL也在全球使用Informix,Oracle则尚未成气候,M$ SQL Server还没有诞生,能和PostgreSQL的品质相提并论的DBMS,可能只有Sybase和IBM的DB2。当时的DB2可能只有main frame的版本,还没有PC版本,我也不了解当时的性能。M$ SQL Server有今天的功能,是因为M$购买Sybase的技术。
sub-query的例子:SELECT a FROM b WHERE c=(SELECT x FROM y WHERE z='abc')
MIS行业最重要的要求之一是:DBMS的技术服务品质。如果资料库毁损或是行为怪异,就是MIS人员的职位危机时刻!如果这时候
* DBMS供应商回答你「因为你没有签维护合约,所以,你先签约,我们才受理。」
* 你的电话和e-mail被转来转去、转了两三天
* 回答你的工程师是三脚猫,程度比你差,感叹「求人不如求己!」
* 老板心里在问:「付薪水给你这个资料库管理师,你却不能解决资料库问题,还要另外付费请厂商过来修理,那要你干甚麽?」
的话,那麽,你随时会阵亡,只能用「悲愤」形容自己的心情了!
我使用过Informix和M$ SQL Server,十分了解Informix和MS SQL Server的服务品质。也曾经悲愤过:Informix出问题已经超过一日,user因为受不了而去「打小报告」,股票上市公司的董事长亲自打电话来责骂我!M$ SQL Server的情况也类似:每天有大量的资料在输入,资料库档案却停止长大! 中国的M$业务员在电话里的回答和Informix一样:先付款,否则免谈!
印象中,我向PostgreSQL的社群提出问题,超过90%会得到回覆。而回覆的品质可以这样总结:
* 回覆的内容,绝大部份都切中问题,有解决掉我的麻烦。
* 回覆的时间是:美、欧的上班时间的开始2小时内。
* 95%的回覆来自美国和欧洲。
* 5%的回覆来自日本。
* 0%的回覆来自台湾和中国。
http://postgresql.1045698.n5.nabble.com/unnest-array-of-row-type-td5140054.html 2012/1/12 22:25 提问。得到回覆:
2012/1/12 22:47 Pavel Stehule:可能是奥地利人。最近才把他加进去我的linkedin好友清单里。
2012/1/13 01:11 Merlin Moncure:美国人。自最近7年起,在PostgreSQL颇活跃
http://postgresql.1045698.n5.nabble.com/Need-a-SQL-to-create-sets-of-hobbies-td2147274.html 2006/9/20 14:18 提问。得到回覆:
2006/9/20 20:33 Harald Fuchs:德国的教授。查他的资料,感觉他的专业好像不是资料库,但是他竟然能在极短的时间内解出我觉得很复杂而且解不出来的SQL问题!
2006/9/21 03:38 Aaron Bono
http://archives.postgresql.org/pgsql-general/1998-07/msg00148.php 1998/7/17 11:09:29 提问。得到回覆:
1998/7/17 14:05:48。Bruce Momjian。此人是PostgreSQL的开山祖师之一,现在可能是
http://enterprisedb.com EnterpriseDB的股东。EnterpriseDB在卖甚麽?顺便免费帮他们广告一下:
PostgreSQL的性能好好到哪里?据
http://enterprisedb.com/success-stories/sony-online-entertainment-replaces-oracle-enterprisedb EnterpriseDB的报导:Sony线上娱乐公司(是不是卖Play Station线上游戏的日本公司?)用PostgreSQL取代Oracle。
疑问:「Oracle用户已经开发的PL/SQL不可能直接拿去PostgreSQL上面跑吧?」。我也有相同疑问。我猜想:可能是EnterpriseDB的人在PostgreSQL上面加上他们自己开发的PL/SQL语言就搞定了吧?可能是因为PostgreSQL的PL/pgSQL和Oracle的PL/SQL很相似,所以EnterpriseDB能很快地加上Oracle的PL/SQL的语法到PostgreSQL上面。有时间的人可以去EnterpriseDB网站去了解。
有感而发:
甚麽是「高科技」?开发和维护DBMS的核心程式码就是高科技。
我不鼓励崇洋心态。但是在DBMS这个领域,可能还没有台湾人具发言资格,占地球四分之一人口的对岸也没有。
「小偷」的行为被许多亚洲人视为人格「小瑕疵」。但是大部份的欧美国家人民和日本人认为偷窃行为是一生的奇耻大辱,如果犯过案,就很难再翻身。
我的经验指出:PostgreSQL值得MIS人员去跟一辈子,不必担心它的
* 功能
* 运行效率
* 稳定性
* 扩充能力
* 技术服务
跟不上你的要求。
给台湾的公、民营机构的MIS人员一些小建议:
* 建立「诚实」的心态:我们没有义务帮任何人去偷窃Oracle、SQL Server、DB2、Informix的连线人数。引进高性能的open source资料库管理系统PostgreSQL到你的机构,做一个堂堂正正的人。
* 体恤2300万个人民的残破财务、帮付我们薪水的公司股东省钱:使用高性能的open source资料库管理系统PostgreSQL。
* 如果在春节有空,去阅读详细且品质高到不行的
http://www.postgresql.org/docs/manuals PostgreSQL技术手册
参考资料:
http://www.postgresql.org/community/contributors 几位我印象深刻的其他DBMS高手:
* Tom Lane:美国人。博士。10年以上的核心开发人员。我曾经数次受教於Tom。他的回答简单明了、一针见血。没见过他打错英文字、很难看到此人的照片。
* Vadim B. Mikheev。俄罗斯人。此人把PostgreSQL的品质拉高N个层次:加入了「multi-version concurrency control (MVCC)」功能。遥遥领先mySQL至少8年!
* Jan Wieck。德国人。此人把PostgreSQL的品质拉高N+1个层次:加入了PL/pgSQL。遥遥领先mySQL至少8年!
後记:我绝不选用不具sub-query、stored procedure、trigger、MVCC和procedural language等能力的DBMS,例如5年前的mySQL,用它们来开发ERP系统。我只选用PostgreSQL,既保护客户的权益,也保障自己的信誉。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 219.84.218.174
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MIS/M.1411023240.A.520.html
1F:推 kaienliu: 大推PostgreSQL,我自己也用了6年多,稳定性真的很好 09/18 16:52
2F:→ etetaet1: 不会资料库的话有甚麽方法入门吗 英文也不太好... 09/18 19:42
3F:→ anecdotes: @kaienliu:很高兴多了一个知音! 09/18 22:29
4F:→ anecdotes: @etetaetl:我觉得懂「normalization,正规化」就差不多 09/18 22:32
5F:→ anecdotes: 可以拿到毕业证书了。严格讲,约10页而已。 09/18 22:33
6F:推 SeanBoog: TIPTOP大概几年前就换ORACLE了 09/19 01:14
7F:推 SeanBoog: 顺便大推一下PostgreSQL 09/19 01:16