MySQL數(shù)據(jù)庫的發(fā)展歷程
此文章主要向大家描述的是MySQL數(shù)據(jù)庫的發(fā)展軌跡,我們大家都知道MySQL最開始的是玩具數(shù)據(jù)庫發(fā)展為現(xiàn)在在“世界上***的開源數(shù)據(jù)庫”,其中的過程伴隨著產(chǎn)品版本升級, 以及一些新功能(特別是企業(yè)數(shù)據(jù)庫功能)的增加。
現(xiàn)在,隨著MySQL 5.0被***地開發(fā)出來,已經(jīng)很少有人將MySQL數(shù)據(jù)庫稱為“玩具數(shù)據(jù)庫”了。
MySQL的豐富功能滿足了許多用戶的需求,Oracle最近的動作表明了他們 對待MySQL非常重視——Oracle曾幾次三番的表示有意收購MySQL。讓我們先從MySQL的較有影響的版本產(chǎn)品開始,看一下MySQL的更新?lián)Q 代。
MySQL 4.0 MySQL 4.0是在2003年3月發(fā)布的,該版本使新的基于MySQL的應(yīng)用程序獲得了更廣泛的應(yīng)用。但是在4.0版中,MySQL不支持存儲過程、觸發(fā)程序、服 務(wù)器端指針或視圖。MySQL 4.0是從3.23發(fā)展而來,較之3.23版本有了很大的提高,主要適用于Web站點,這時候的MySQL還不是一個企業(yè)級數(shù)據(jù)庫。
以下是MySQL 4.0的主要新特性: FULLTEXT索引:最值得用戶期待的可能就是FULLTEXT索引。 FULLTEXT在文本字段創(chuàng)建索引,為對該索引執(zhí)行布爾搜索提供了一個強(qiáng)大而靈活的機(jī)制。依照一般的開發(fā)經(jīng)驗,開發(fā)人員通常必須創(chuàng)建索引并訪問文本數(shù)據(jù),而FULLTEXT索引比想象中的還要好得多。
許多解決方案僅限于全字索引,F(xiàn)ULLTEXT索引沒有這種限制,允許開發(fā)人員添加或拆分詞組。 ANSI SQL UNION:支持ANSI SQL UNION語句,該語句將詢問結(jié)果匯集到一個結(jié)果集。
多表操作:可以執(zhí)行多表UPDATE和DELETE。 新語句:增加了其他DBMS用戶所熟悉的一些非標(biāo)準(zhǔn)的新語句(如IDENTITY和TRUNCATE TABLE),以及FOUND_ROWS()等新功能,這些功能可以返回?zé)o需LIMIT子句就能返回的紀(jì)錄的編號。 InnoDB存儲引擎:InnoDB存儲引擎在當(dāng)時作為服務(wù)器的標(biāo)準(zhǔn)特性,在4.0版本中成為一個附加選項。
InnoDb是允許ACID兼容事務(wù)的表類型,而非默認(rèn)的MyISAM表類型,它可以加快一般性使用的速度,但對于關(guān)鍵操作不是十分有用。InnoDB表使用行級別鎖定特性,這意味著對一個記錄的更新只鎖定該記錄,而不是整個表。當(dāng)選擇訪問大量的數(shù)據(jù)庫時(對于大多數(shù)Web站點而 言),鎖定整個表相當(dāng)快,但是當(dāng)插入和更新的數(shù)量接近于選項的數(shù)量時,則速度較慢。
長期以來,對MySQL數(shù)據(jù)庫的批評一直集中在MyISAM表的安全性和一致 性問題,兼容ACID的InnoDB表在解決這些問題上走過了很長一段路。 查詢緩存:MySQL 4.0在某些情況下可以更快捷。這主要通過查詢緩存得以實現(xiàn),它將重復(fù)的查詢結(jié)果存儲起來,使速度得以提高,盡管許多成熟的應(yīng)用程序在某個代碼級別上執(zhí)行自己的查詢緩存功能。
某些語句在速度上也有所提高。 Embededded Server:MySQL 4.0附帶了一個Embededded Server庫,允許應(yīng)用程序以MySQL作為底層數(shù)據(jù)庫。 latin1_de :MySQL 4.0支持一個額外字符集latin1_de,它可確保正確存儲德語單詞。 MyISAM:MySQL 4.0中的MyISAM表目前在表級別上支持符號鏈接,所以Windows用戶可以在表級別上創(chuàng)建符號鏈接(這對于Unix用戶始終有效)。
安全模型:MySQL 4.0的安全模型得到了增強(qiáng),允許管理員更加細(xì)致地授權(quán)許可。新的權(quán)限允許用戶創(chuàng)建臨時表、鎖定表、執(zhí)行某些復(fù)制任務(wù)、查看所有現(xiàn)有的數(shù)據(jù)庫,甚至在達(dá)到 ***連接限度時還能進(jìn)行連接——對于DBA執(zhí)行緊急任務(wù)非常有用,甚至允許運行存儲過程(在MySQL 5中實現(xiàn)了此功能)。DBA依靠增強(qiáng)的安全模式也可以限制用戶每小時的連接、更新或查詢次數(shù)。
MySQL 4設(shè)計運行在Novell Netware 6.0之上。另外,MySQL服務(wù)器變量中有不少可以在不重新啟動服務(wù)器的情況下進(jìn)行更改,由于重新啟動會恢復(fù)舊的設(shè)置,因此這個特性非常有用。
MySQL 4.1 MySQL 4.1推出之后,對于某些用戶而言,4.1比MySQL 4.0具有更激動人心的升級可能: MySQL 4.1支持子查詢 不使用子查詢時,許多查詢可以更有效地編寫,但是會有例外。子查詢是標(biāo)準(zhǔn)ANSI SQL特性。 支持Unicode (UTF-8),允許更廣泛地進(jìn)行國際化。 每個列、表或數(shù)據(jù)庫都可以設(shè)置不同的字符集,如果以多種語言存儲數(shù)據(jù),這就很有必要了。 支持地理數(shù)據(jù)(OpenGIS) 增強(qiáng)的警告發(fā)送。
如果一個不夠,MySQL 4.1可以將多個警告發(fā)送到客戶端,這樣就對于整體數(shù)據(jù)處理十分有用。 提高了一些速度。但這些速度提高可能被MySQL 4.1所承擔(dān)的所有額外部分抵消。 盡管MySQL手冊是發(fā)布的***手冊之一,MySQL 4.1還是附帶了僅適用于該版本的HELP命令。 支持派生表,例如:
SELECT table1.field1 FROM table, (SELECT * FROM table2) table3 WHERE table1.field1=table3.field1 支持多行查詢,允許運行多個查詢,然后讀取最終結(jié)果。 各種維護(hù)語句將存入二進(jìn)制日志中,在復(fù)制時您可以簡化維護(hù)任務(wù)。 CREATE...LIKE允許開發(fā)人員按現(xiàn)有表的精確結(jié)構(gòu)輕松地創(chuàng)建新表。 另外,MySQL 4.1的三個顯著功能包括:穩(wěn)定的OpenSSL支持、更多的測試準(zhǔn)備語句、更多的測試一個表的多個字符集。
MySQL 4.1或許是***個實際“長大成人”的MySQL數(shù)據(jù)庫版本。由于4.1版本中一些新增加的特性和功能(例如地理數(shù)據(jù)、子選擇語句、派生表),Oracle***次開始真正關(guān)注MySQL。 MySQL 5.0 支持存儲過程。存儲過程是一個開發(fā)人員在其他數(shù)據(jù)庫環(huán)境最常用的ANSI SQL標(biāo)準(zhǔn),對于MySQL來說,這已經(jīng)姍姍來遲了。MySQL 5.0所支持的存儲過程的語法類似于Oracle PL/SQL和T-SQL。 觸發(fā)程序(發(fā)生某個事件時所稱的存儲過程) 支持指針
真正支持VARCHAR數(shù)據(jù)類型,解決了一個長期存在的MySQL VARCHAR bug。
在MyISAM表中對RTREE索引的支持,將使訪問地理數(shù)據(jù)變得很容易。
MySQL 5.1 相對于5.0版本,MySQL 5.1實現(xiàn)了一些新的功能: 聯(lián)機(jī)備份(允許添加replication slave,而不必關(guān)閉主服務(wù)器)。
BIT類型,實際占用1位,而不是1個字符。
失敗保護(hù)(failsafe)復(fù)制
原文標(biāo)題:看MySQL的發(fā)展軌跡
連接:http://www.cnblogs.com/hustcat/articles/1585602.html
【編輯推薦】















 
 
 

 
 
 
 