從4.0到5.1 為什麼MySQL卻被冠名"玩具資料庫"
最後更新:2017-01-13
來源:互聯網
上載者:User
MySQL 從開發人員手中的“玩具”變為如今的“世界上最流行的
開源
資料庫 ”,其中的過程伴隨著產品版本升級,以及一些新功能(特別是企業資料庫功能)的增加。現在,隨著MySQL 5.0被完美地開發出來,已經很少有人將MySQL稱為“玩具資料庫”了。MySQL的豐富功能滿足了許多使用者的需求,Oracle最近的動作表明了他們對待MySQL非常重視——Oracle曾幾次三番的表示有意收購MySQL。
MySQL的產品路線圖
讓我們先從MySQL的較有影響的版本產品開始,看一下MySQL的更新換代。
MySQL 4.0
MySQL 4.0是在2003年3月發布的,該版本使新的基於MySQL的應用程式獲得了更廣泛的應用。但是在4.0版中,MySQL不支援預存程序、觸發程式、伺服器端指標或視圖。MySQL 4.0是從3.23發展而來,較之3.23版本有了很大的提高,主要適用於Web網站,這時候的MySQL還不是一個企業級資料庫。
以下是MySQL 4.0的主要新特性:
FULLTEXT索引:最值得使用者期待的可能就是FULLTEXT索引。
FULLTEXT在文字欄位建立索引,為對該索引執行布爾搜尋提供了一個強大而靈活的機制。依照一般的開發經驗,開發人員通常必須建立索引並訪問文本資料,而FULLTEXT索引比想象中的還要好得多。
許多解決方案僅限於全字索引,FULLTEXT索引沒有這種限制,允許開發人員添加或拆分片語。
ANSI SQL UNION:支援ANSI SQL UNION語句,該語句將詢問結果彙集到一個結果集。
多表操作:可以執行多表UPDATE和DELETE。
新語句:增加了其他DBMS使用者所熟悉的一些非標準的新語句(如IDENTITY和TRUNCATE TABLE),以及FOUND_ROWS()等新功能,這些功能可以返回無需LIMIT子句就能返回的紀錄的編號。
InnoDB儲存引擎:InnoDB儲存引擎在當時作為伺服器的標準特性,在4.0版本中成為一個附加選項。InnoDb是允許ACID相容事務的表類型,而非預設的MyISAM表類型,它可以加快一般性使用的速度,但對於關鍵操作不是十分有用。
InnoDB表使用行層級鎖定特性,這意味著對一個記錄的更新只鎖定該記錄,而不是整個表。當選擇訪問大量的資料庫時(對於大多數Web網站而言),鎖定整個表相當快,但是當插入和更新的數量接近於選項的數量時,則速度較慢。長期以來,對MySQL的批評一直集中在MyISAM表的安全性和一致性問題,相容ACID的InnoDB表在解決這些問題上走過了很長一段路。