- MySQL數據庫管理與開發實踐教程 (清華電腦學堂)
- 程朝斌
- 1924字
- 2021-03-19 18:16:45
1.2 MySQL與其他數據庫的區別
前面簡單介紹了MySQL的發展歷程,從中了解了MySQL快速崛起的必要條件。接下來,通過MySQL在功能、性能,以及其易用性方面和其他主流的數據庫做一個基本的比較,來了解一下MySQL成為當下最流行的開源數據庫軟件的充分條件。
1.2.1 功能比較
作為一個成熟的數據庫管理系統,要滿足各種各樣的商業需求,功能肯定是會被列入重點參考對象的。MySQL雖然在早期版本的時候功能非常簡單,只能做一些很基礎的結構化數據存取操作,但是經過多年的改進和完善之后,已經基本具備了所有通用數據庫管理系統所需要的相關功能。
MySQL基本實現了ANSI SQL 92的大部分標準,僅有少部分并不經常被使用的部分沒有實現。比如在字段類型支持方面,另一個著名的開源數據庫PostGreSQL支持的類型是最完整的,而Oracle和其他一些商業數據庫,比如DB2、Sybase等,較MySQL來說也要相對少一些。在事務支持方面,雖然MySQL的存儲引擎InnoDB實現了SQL 92標準所定義的4個事務隔離級別的全部,只是在實現的過程中每一種的實現方式可能有一定的區別,這在當前商用數據庫管理系統中都不多見。比如,大名鼎鼎的Oracle數據庫就僅實現了其中的兩種(Serializable和Read Commited)。
不過在可編程支持方面,MySQL和其他數據庫相比還有一定的差距,雖然最新版的MySQL已經開始提供一些簡單的可編程支持,如開始支持Procedure、Function、Trigger等,但是所支持的功能還比較有限,和其他幾大商用數據庫管理系統相比,還存在較大的不足。如Oracle有強大的PL/SQL,SQL Server有T-SQL,PostGreSQL也有功能很完善的PL/PGSQL的支持。
整體來說,雖然在功能方面MySQL數據庫作為一個通用的數據庫管理系統暫時還無法和PostGreSQL相比,但是其功能完全可以滿足通用商業需求,提供足夠強大的服務。況且不管是哪一種數據庫,在功能方面都不敢聲稱自己比其他任何一款商用通用數據庫管理系統都強,甚至都不敢聲稱自己擁有某一數據庫產品的所有功能。因為每一款數據庫管理系統都有其自身的優勢,但也有其自身的限制,這只能代表每一款產品所傾向的方向不一樣而已。
1.2.2 易用性比較
從系統易用性方面來比較,每一個使用過MySQL的用戶都能夠明顯地感覺出MySQL在這方面與其他通用數據庫管理系統之間的優勢所在。尤其是相對于一些大型的商業數據庫管理系統如Oracle、DB2以及Sybase來說,對于普通用戶來說,操作的難易程度明顯不處于一個級別。MySQL一直都奉行簡單易用的原則,也正是靠這一特性,吸引了大量的初級數據庫用戶最終選擇了MySQL。也正是這一批又一批的初級用戶,在經過了幾年時間的成長之后,很多都已經成為高級數據庫用戶,而且也一直都在伴隨著MySQL成長。
從安裝方面來說,MySQL安裝包大小只有100MB左右,這與幾大商業數據庫相比完全不在一個數量級。安裝難易程度也要比Oracle等商業數據庫簡單很多,不論是通過已經編譯好的二進制分發包還是源碼編譯安裝,都非常簡單。
再從數據庫創建來比較,MySQL只需要一個簡單的CREATE DATABASE命令,即可在瞬間完成建庫的動作,而Oracle數據庫與之相比,創建一個數據庫簡直就是一個非常龐大的工程。當然,不可否認二者數據庫的概念存在一定的差別。
1.2.3 性能比較
性能方面,一直是MySQL引以為自豪的一個特點。在權威的第三方評測機構多次測試較量各種數據庫TPCC值的過程中,MySQL一直都有非常優異的表現,而且在其他所有商用的通用數據庫管理系統中,只有Oracle數據庫能夠與其一較高下。至于各種數據庫詳細的性能數據,可以通過網上第三方評測機構公布的數據了解具體細節信息。
MySQL一直以來奉行一個原則,那就是在保證足夠的穩定性的前提下,盡可能地提高自身的處理能力。也就是說,在性能和功能方面,MySQL第一考慮的要素主要還是性能,MySQL希望自己是一個在滿足客戶99%的功能需求的前提下,花掉剩下的大部分精力來在性能方面努力,而不是希望自己成為一個比其他任何數據庫的功能都要強大的數據庫產品。
1.2.4 可靠性比較
關于可靠性的比較,并沒有太多詳細的評測比較數據,但是從目前業界的交流中可以了解到,幾大商業廠商的數據庫的可靠性肯定是沒有太多值得懷疑的。但是作為開源數據庫管理系統的代表,MySQL也有非常優異的表現,而并不是像有些人心中所懷疑的那樣,因為不是商業廠商所提供,就會不夠穩定不夠健壯。從Taobao和Baidu這樣大型的網站都是使用MySQL數據庫,就可以看出MySQL在穩定可靠性方面,并不會比商業廠商的產品有太多遜色。而且排在全球前10位的大型網站里面,大部分都有部分業務是運行在MySQL數據庫環境上,如Yahoo、Google等。
總地來說,MySQL數據庫在發展過程中一直有自己的三個原則:簡單、高效、可靠。從上面的簡單比較中也可以看出,在MySQL自己的所有三個原則上面,沒有哪一項是做得不好的。而且,雖然功能并不是MySQL自身所追求的三個原則之一,但是考慮到當前用戶量的急劇增長,用戶需求越來越多樣化,MySQL 也不得不在功能方面做出大量的努力,來不斷滿足客戶的新需求。比如最近版本中出現的Partition功能,自主研發的Maria存儲引擎在功能方面的擴展支持等,都證明了MySQL在功能方面也開始了不懈的努力。
- Learning Neo4j
- Kali Linux Web Penetration Testing Cookbook
- Visual FoxPro 程序設計
- 精通軟件性能測試與LoadRunner實戰(第2版)
- INSTANT Sencha Touch
- 鋒利的SQL(第2版)
- Java 11 Cookbook
- Android 應用案例開發大全(第3版)
- Python面向對象編程:構建游戲和GUI
- Multithreading in C# 5.0 Cookbook
- Red Hat Enterprise Linux Troubleshooting Guide
- Elasticsearch Essentials
- Hadoop 2.X HDFS源碼剖析
- Unity Character Animation with Mecanim
- 實戰Python網絡爬蟲