[心得] 推薦大家使用PostgreSQL
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://www.ptt.cc/bbs/MIS/M.1411023240.A.520.html
推
09/18 16:52, , 1F
09/18 16:52, 1F
→
09/18 19:42, , 2F
09/18 19:42, 2F
→
09/18 22:29, , 3F
09/18 22:29, 3F
→
09/18 22:32, , 4F
09/18 22:32, 4F
→
09/18 22:33, , 5F
09/18 22:33, 5F
推
09/19 01:14, , 6F
09/19 01:14, 6F
推
09/19 01:16, , 7F
09/19 01:16, 7F
MIS 近期熱門文章
PTT職涯區 即時熱門文章
740
1489