Mysql與其他資料庫的簡單比較

2021-07-22 10:05:41 字數 2396 閱讀 7247

以下內容摘自書《mysql效能調優與架構設計》

一、功能比較

作為乙個成熟的資料庫管理系統,要滿足各種各樣的商業需求,功能肯定是會被列入重點參考物件的。mysql的早期版本功能非常簡單,只能做一些很基礎的結構化資料訪問操作,但是經過多年的改進和完善之後,現在它已經基本具備了所有通用資料庫管理系統需要的相關功能。

mysql基本實現了ansi sql 92的大部分標準,僅有少部分並不經常被使用的沒有實現。比如在字段型別支援方面,另乙個著名的開源資料庫postgresql支援的型別是最完整的,而oracle和其他一些商業資料庫較mysql要相對少一些。這一點,我們可以通過tcx的crash-ne測試套件得出的檢測報告得知。在事務支援方面,雖然mysql自己的儲存引擎並沒有提供,但是已經通過第三方外掛程式方式儲存引擎innodb實現sql 92標準定義的4個事務隔離級別的全部,只是在實現的過程中每一種引擎的實現方式可能有一定的區別,這在當前商用資料庫管理系統中並不多見。比如,大名鼎鼎的oracle資料庫就僅僅實現了其中的兩種,而postgresql支援4種隔離級別。

不過在程式設計支援方面mysql和其他資料庫相比還有一定的差距,雖然最新版的mysql已經開始提供一些簡單的可程式設計支援,如開始支援procedure、function、trigger等,但是所支援的功能還比較有限,和其他幾大商用資料庫管理系統相比,還存在較大的不足。如oracle有強大的pl/sql,sql server有t-sql,postgresql也有功能很完善的pl/pgsql的支援。

整體來說,雖然在功能方面mysql資料庫作為乙個通用的資料庫管理系統暫時還無法和postgresql相比,但是其功能完全可以滿足我們的通用商業需求,提供足夠強大的服務。而且不管是哪一種資料庫在功能方面都不敢聲稱自己比其他任何一款商用資料庫管理系統都強,甚至都不敢聲稱能夠擁有某類資料庫產品的所有功能。因為每一款資料庫管理系統都有自身的優勢,也有自身的侷限,這都說明每一款產品重點服務的方向不一樣。

二、易用性比較

從系統易用性方面來比較,每乙個使用過mysql的使用者都能夠明顯地感覺出mysql在這方面的優勢所在,尤其是相對於一些大型的商業資料庫管理系統,如oracle、db2及sybase。對於普通使用者來說,它們的操作難易程度明顯不處於乙個級別。mysql一直都奉行簡單易用的原則,也正是靠這一特性吸引了大量的初級資料庫使用者。這一批又一批的初級使用者,在經過了幾年的成長之後,很多都已經成為了高階資料庫使用者,而且也一直都在伴隨著mysql成長。

從安裝方面來說,mysql安裝包大小僅100mb左右,與那幾大商業資料庫相比完全不是乙個數量級。它的安裝也比oracle等商業資料庫容易很多,不論是通過已經編譯好的二進位制分發包,還是通過原始碼編譯安裝,都非常簡單。

再從資料庫建立方面來比較,mysql僅僅需要乙個簡單的create database命令即可在瞬間完成建庫的動作,而oracle資料庫與之相比,建立乙個資料庫簡直就是乙個龐大的工程。當然,二者在概念上存在一定差別也不可否認。

三、效能比較

效能高一直是mysql引以自豪的乙個特點。在權威的第三方評測機構多次測試比較各種資料庫tpcc值的過程中,mysql一直都有非常優異的表現,而且在其他所有商用的通用資料庫管理系統中,僅僅有oracle資料庫能夠與其一較高下。至於各種資料庫詳細的效能資料,這裡就不再介紹,大家完全可以通過網上第三方評測機構公布的資料了解具體細節資訊。

mysql一直以來奉行乙個原則,那就是在保證足夠穩定性的前提下,盡可能地提高自身的處理能力。也就是說,在效能和功能方面,mysql第一考慮的要素主要還是效能,mysql希望能夠在滿足客戶99%的需求的前提下,將剩餘的所有精力都用來努力提高系統效能,而不希望自己是乙個比其他任何資料庫的功能都要強大的產品。

四、可靠性比較

關於可靠性的比較,並沒有太多詳細的評測比較資料,但是從目前業界的反映中可以了解到,幾大商業廠商的資料庫之可靠性肯定是沒有太多問題的。但是作為開源資料庫管理系統的代表,mysql也有非常優異的表現,而並不是像有些人心中所懷疑的那樣,以為不是商業廠商提供,就會不夠穩定、不夠健壯。從當前最火的facebook這樣大型的**都是使用mysql資料庫就可以看出,mysql在穩定可靠性方面,並不會比商業廠商的產品遜色太多。而且排在全球前10位的大型**裡面,大部分都有部分業務是執行在mysql資料庫環境上的,如yahoo、google等。

總體來說,mysql資料庫在發展過程中一直追求三項原則:簡單、高效、可靠。從上面簡單的比較重也可以看出,mysql在這三項原則上面,沒有哪一項是做的不好的。而且,雖然功能並不是mysql自身追求的原則之一,但是考慮到當前使用者量急劇增長,使用者需求越來越多樣化,mysql也不得不在功能方面做出大量的努力,以不斷滿足客戶的新需求。比如最新版本中出現的event scheduler(類似於oracle的job功能)、patition功能,自主研發的maria儲存引擎在功能方面的擴充套件,falcon儲存引擎對事務的支援等,都證明了mysql在功能方面也開始了不懈努力。

任何一種產品,都不可能是絕對完美的,也不可能適用於所有使用者。我們只有衡量了每一種產品的各種特性之後,從中選擇出一種最適合自己的產品。

mysql與其他資料庫比較

功能比較 作為乙個成熟的資料庫管理系統,要滿足各種各樣的商業需求,功能肯定是會被列入重點參考物件的。mysql的早期版本功能非常簡單,只能做一些基礎的結構化資料訪問操作,但是經過多年的改進和完善之後,現在已經具備了所有通用資料庫管理系統需要的相關功能。mysql基本實現了ansi sql 92的大部...

mysql與其他資料庫不同的地方

1 使用parameter引數形式提交command時必須要把 號換成 號,這一點讓我困惑了一天,只是不明白mysql為何要搞特殊呢,象ms odp.net for oracle oledb等方式,都是用 號的。例子如下 string connstr setting.instance getconn...

oracle 與其他資料庫如mysql的區別

想明白乙個問題 1 oracle是以資料庫為中心,乙個資料庫就是乙個域 可以看作是乙個資料夾的概念 乙個資料庫可以有多個使用者,建立使用者是在登陸資料庫之後進行的,但是有表空間的概念 2 而mysql和sqlserver相反,是以使用者為中心,可以有多個使用者,使用者登陸後可以建立所需要的資料庫,可...