這是我在安裝和開始使用Oracle 10g, PostgreSQL8 ,以及MySQL 5時做出的比較。我從以下三種藝術形態來比較一下三種類型的資料庫:商業vs.學術vs.網際網路模型。這是從一個想要安裝資料庫並對其進行學習的初級使用者的角度做出的比較。我試圖以家庭或者小型商業使用者的視角來進行說明。 完全大揭密:我非常傾向於Oracle,並且真的希望沒有其他的任何產品能夠真正與之抗衡。 許可費用:我不想要捲入開源和資源保密的爭論中去。Oracle是一個商業的資料庫,要想使用就必須交納許可費用。MySQL 和 PostgreSQL則是開源項目。Oracle為你提供了免費的開發許可證,用來實驗並建立原型。 配置:我使用的是一台較老的機器,記憶體256兆,硬碟40G,CPU是633Mhz 的賽揚。作業系統是Windows2000專業版。我想要在低端配置上進行安裝,以便于衡量對於家庭使用者類型的安裝的效能。 作業系統:我選擇在Windows下面進行比較,因為我相信這仍然是新近使用資料庫的人們的最常見的平台。我的意思是人們在家裡進行安裝。對於新的公司使用者來說,他們就無須對作業系統或者資料庫進行選擇,當然這個比較也就沒有意義了。 版本: PostgreSQL 8.0——PostgreSQL 8.0是一款非常新的產品。我選擇8.0是因為它是最新的版本,並且它很本來就支援Windows。這是第一個不需要模擬器或者第三方重新編譯的真正支援Windows的版本。 MySQL ——MySQL 5.0也是一款非常新的產品。實際上,我使用的版本v5.0.4是一款beta版。我對於應該選擇穩定的v4還是beta版的v5猶豫了一陣子。最後我選擇v5是因為v4無法與PostgreSQL 或者 Oracle 進行競爭。V4沒有預存程序、觸發器、視圖等。沒有上述特性,我認為它不具有競爭者的資格,而v5則支援上述特性。 Oracle 10g——這是Oracle的最新版本,去年發布的。我認為,Oracle 10g是資料庫重的黃金標準。然而,我還是認為它太過昂貴,並且在產品環境需要相當的知識才能對其進行維護。 得分指標: 文檔和入門支援 易於安裝 易於檢驗安裝是否成功 非管理使用者的建立 運行第一個查詢的時間 資源需求 得分:我給每一個指標打一個從1到10的分數,10表示最好或者最高。 文檔和入門支援 PostgreSQL ——我找到了它對以前很多版本的支援(在Linux, Cygwin等環境下),但是對Windows的支援卻只有8.0。PostgreSQL 檔案管理網站,http://www.postgresql.org/docs/,提供了非常好非常完整的文檔。我認為,過去PostgreSQL的一個長處就是它的文檔。 這個網站包括了非常好的安裝文檔。然而,安裝後的文檔和入門文檔就非常有限。我希望他們能夠及時改變這種狀況。 我在google上查詢了“PostgreSQL入門”,獲得上千個點擊,但是幾乎都是版本7的。PostgreSQL 有一些Usenet新聞群組支援,但是我發現他們不是很活躍。 PostgreSQL 文檔得分:5 MySQL ——因為v5是如此的新,以至於現在還沒有很多的文檔。滿世界都是MySQL v3和v4的文檔。查看Amazon 或者BN.com ,MySQL 似乎是相當多的較小的網際網路和面向java的公司的選擇。 因為v5是beta版本,我不會給這個指標打分,因為文檔會在發布的時候給出。V4擁有令人驚訝的文檔,我也非常期望v5在發布產品的時候能夠擁有同樣多的文檔。我根據v4的文檔給出得分。 我在google上查詢“MySQL入門”,獲得了數百萬的點擊,幾乎都是v4的。我沒有找到針對MySQL 的Usenet 新聞群組支援,但是我發現comp.databases 組中發表了一些對MySQL 的支援。 MySQL 文檔得分:8 Oracle ——Oracle ,作為一個商業產品,它擁有一大批全職的技術編輯。每個特性都有說明,並且許多特性都有自己的手冊。Oracle提供的安裝文檔非常不錯,但是缺點就是它是由Oracle專用的第三方網站組成的。文檔,和文檔入口一樣,都非常成熟。 除了針對每個作業系統的安裝文檔之外,Oracle還提供了一個《2天成為資料庫管理員》的指南。這個文檔對於新使用者來說是不可缺少的。 我在google上搜尋“Oracle入門”,可以查到數百萬個點擊。Oracle還擁有魯棒的Usenet 新聞群組支援。 Oracle文檔得分:10 易於安裝 PostgreSQL 我以前沒有在Cygwin(一種用於Windows的Unix環境)之上使用過PostgreSQL 。我對於安裝趕到非常驚訝。它運行起來非常自然,沒有絲毫紕漏。安裝過程也非常快。 PostgreSQL 的安裝是最快的。根據文檔描述,你可以在沒有系統管理權限的情況下進行安裝。因為這是支援Windows(沒有Cygwin)的第一個PostgreSQL 版本,我想要測試一下服務支援。PostgreSQL 作為服務安裝,在機器重啟之後可以沒有問題的啟動。 PostgreSQL 安裝得分:10 MySQL 我過去構建了一個網站,主要用於自己娛樂,使用了MySQL 作為資料庫。我使用的技術是Java/Apache/MySQL 。根據已往的經驗,我十分期望MySQL 可以在安裝方面勝出。然而,MySQL 是惟一一個在安裝過程中失敗的。我執行了清除,然後重新運行安裝程式。又失敗了。我再次清理,重新啟動電腦,然後重新運行安裝程式。這次成功安裝。我不確定是什麼引起了錯誤。它隱藏得很深,但是它導致了數次的失敗。然而,我可以強制通過。記住,這隻是一個beta版本。 MySQL 還可以作為服務進行安裝,在機器重啟之後沒有錯誤的啟動。當它運行正確的時候,安裝進行得也很快。 MySQL 安裝得分:5 Oracle Oracle再一次證明了它是一個非常成熟的產品。在三者當中,Oracle是唯一一個不需要管理員權限就可以安裝的。這個選項非常好。 並且,它確實非常容易安裝。我沒有碰到錯誤。Oracle也是惟一一個在安裝的最後提示我按下一步按鈕的。這個方法對於新使用者來說非常有用,它幾乎不需要任何努力。所有的資料庫都應該提供這種支援。 實際上,Oracle有一個詬病就是它的安裝花費的時間。這對於家庭使用者來說確實是一個問題。有好幾次,我都懷疑我的機器掛掉了,因為我在很長一段時間內沒有得到任何的反饋。 Oracle安裝得分:7 易於檢驗安裝是否成功 要驗證安裝是否成功有一點困難,但是上述三種資料庫都提供了資料存取工具。我根據提供的文檔中的指示,在三種環境都中可以訪問到伺服器。 以上三種資料庫的驗證得分:10 非管理使用者的建立: PostgreSQL :PostgreSQL 使用了標準的CREATE USER文法,我可以輕鬆地執行這個任務。文檔可以指導使用者通過這個任務(出於安全的需要)。 PostgreSQL 建立使用者得分:10 MySQL :在v5版本中也可以使用CREATE USER文法。以前發布的版本則不可以。因此,文檔是不完整的;不能明顯地看出是否可以使用CREATE USER。對於新使用者,這有點令人困惑。 MySQL 建立使用者得分:7 Oracle:Oracle 使用標準CREATE USER文法,我能夠輕鬆地執行這個任務。文檔可以指導使用者完成這個任務。 Oracle建立使用者得分:10 運行第一個查詢的時間 上述三種資料庫文檔集都提供了串連並運行第一個查詢的指南。 上述三種資料庫的第一個查詢得分:10 資源需求: PostgreSQL ——我對於PostgreSQL 的最小資源需求感到十分吃驚。我進行了一些測試,例如在遠端連線的時候開啟網路瀏覽器和MS-Word ,可以看到我的測試機器上面沒有收到任何影響。 我沒有找到最小的硬體需求,但是舊機器上的256兆記憶體看起來足夠了。 PostgreSQL 資源得分:10 MySQL ——MySQL 的資源需求非常小是眾所周知的。這就是它的一個最大的賣點,並且一直如此。我進行了與在PostgreSQL上面進行的同樣的測試,MySQL 執行得與PostgreSQL 一樣好。 非常奇怪的是,我也沒有找到MySQL 的最小硬體需求,但是舊機器上面的256兆記憶體看起來是足夠了。 MySQL 資源得分:10 Oracle——Oracle 使用了大多數的記憶體,並且Oracle 10g使用得比以前的版本還多。實際上,它最好運行在512兆記憶體的機器上,我推薦1G的記憶體。 在測試機上,僅是Oracle的啟動就花了很長時間。當我開啟Word,記憶體開始不斷地交換和停滯。開啟了多個遠端連線之後,資料庫開始停頓。Oracle可以安裝並運行在256兆記憶體的機器上,但是我不推薦。 Oracle資源得分:3 那麼綜合評定如何呢?下面是最終得分: PostgreSQL: 55 MySQL: 50 Oracle: 50 那麼,這就是安裝和第一次使用的得分。這根本不是我期望的結果。我認為這三者得分如此的高是非常好的。我本沒有期望會得到這個結果,或者是Oracle和MySQL不分勝負。我也沒有預料到PostgreSQL 會成為第一名。 然而,安裝只是使用資料庫的一小部分。還有語言支援、管理、額外的可用特性、安全措施,以及第三方的支援。在不久的將來 ,我還會寫出這些部分的比較。
| |
Oracle 10g |
MySQL 5.0 |
PostgreSQL 8.0 |
| 文檔和學習支援 |
10 |
8 |
5 |
| 易於安裝性 |
7 |
5 |
10 |
| 易於檢驗成功安裝 |
10 |
10 |
10 |
| 建立非admin許可權使用者 |
10 |
7 |
10 |
| 執行第一次查詢的時間 |
10 |
10 |
10 |
| 資源佔用 |
3 |
10 |
10 |
雖然postgresql的文檔只得5分,不過我覺得postgreSQL官方文檔也很全,只是因為還不夠普及所以經驗之談得資料很少,我相信以後會多. |