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