數(shù)據(jù)庫引擎是用于存儲(chǔ)、處理和保護(hù)數(shù)據(jù)的核心服務(wù)。利用數(shù)據(jù)庫引擎可控制訪問權(quán)限并快速處理事務(wù),從而滿足企業(yè)內(nèi)大多數(shù)需要處理大量數(shù)據(jù)的應(yīng)用程序的要求。 使用數(shù)據(jù)庫引擎創(chuàng)建用于聯(lián)機(jī)事務(wù)處理或聯(lián)機(jī)分析處理數(shù)據(jù)的關(guān)系數(shù)據(jù)庫。這包括創(chuàng)建用于存儲(chǔ)數(shù)據(jù)的表和用于查看、管理和保護(hù)數(shù)據(jù)安全的數(shù)據(jù)庫對(duì)象(如索引、視圖和存儲(chǔ)過程)??梢允褂?SQL Server Management Studio 管理數(shù)據(jù)庫對(duì)象,使用 SQL Server Profiler 捕獲服務(wù)器事件。
常用的數(shù)據(jù)庫引擎有哪些
1.數(shù)據(jù)庫引擎
Microsoft JET (Joint Engineering Technologe) 是Access和Visual Basic所提供的內(nèi)嵌數(shù)據(jù)庫功能的核心元素。JET是一種全能關(guān)系數(shù)據(jù)庫引擎,可用來處理大多數(shù)中小型數(shù)據(jù)庫。所謂數(shù)據(jù)庫引擎是應(yīng)用程序和數(shù)據(jù)庫存儲(chǔ)之間的一種接口,它將與數(shù)據(jù)庫有關(guān)的內(nèi)存管理、游標(biāo)管理和錯(cuò)誤管理等具體而復(fù)雜的細(xì)節(jié)問題抽象為一個(gè)既高度一致又簡(jiǎn)化的編程接口。
Jet數(shù)據(jù)庫引擎包含在一組動(dòng)態(tài)鏈接庫(DLL)文件中,在運(yùn)行時(shí),這些文件被鏈接到Visual Basic程序。它把應(yīng)用程序的請(qǐng)求翻譯成對(duì).mdb文件或其他數(shù)據(jù)庫的物理操作。它真正讀取、寫入和修改數(shù)據(jù)庫,并處理所有內(nèi)部事務(wù),如索引、鎖定、安全性和引用完整性等。它還包含一個(gè)查詢處理器,用于接收并執(zhí)行結(jié)構(gòu)化查詢語言(SQL)的查詢來實(shí)現(xiàn)所需的數(shù)據(jù)庫操作。另外,Jet數(shù)據(jù)庫引擎還包含一個(gè)結(jié)果處理器.用來管理查詢所返回的結(jié)果。
2.ODBC
Open DataBase Connectivity(ODBC,開放數(shù)據(jù)庫互連)是由Microsoft定義的一種數(shù)據(jù)庫訪問標(biāo)準(zhǔn),它提供一種標(biāo)準(zhǔn)的數(shù)據(jù)庫訪問方法以訪問不同平臺(tái)的數(shù)據(jù)庫。一個(gè)ODBC應(yīng)用程序既可以訪問在本地PC機(jī)上的數(shù)據(jù)庫,也可以訪問多種異構(gòu)平臺(tái)上的數(shù)據(jù)庫,例如SQL Server、Oracle或者DB2。
ODBC本質(zhì)上是一組數(shù)據(jù)庫訪問API(應(yīng)用編程接口),但編程人員通過ODBC訪問數(shù)據(jù)庫時(shí)無需深入理解ODBC函數(shù)就可以訪問ODBC功能,這是因?yàn)橄骎isual Basic這樣的開發(fā)工具都提供了一些對(duì)象封裝了ODBC函數(shù)。
3.OLE DB
OLE DB是Microsoft開發(fā)的最新數(shù)據(jù)庫訪問接口,Microsoft將其定義為ODBC接班人。與ODBC類似,OLE DB提供了對(duì)關(guān)系數(shù)據(jù)庫的訪問,同時(shí)在此基礎(chǔ)上,它對(duì)ODBC所提供的功能進(jìn)行了一部分的擴(kuò)展。作為一種標(biāo)準(zhǔn)的接口,OLE DB可以訪問所有類型的數(shù)據(jù),包括關(guān)系數(shù)據(jù)庫、dBase等ISAM(索引序列訪問方法)類型的文件、甚至E-MAIL或者Windows 2000活動(dòng)目錄等。
OLE DB應(yīng)用程序可以分為兩種:OLE DB提供者(OLE DB Provider)和OLE DB使用者(OLE DB Consumer),OLE DB使用者就是使用OLE DB接口的應(yīng)用程序,而OLE DB提供者負(fù)責(zé)訪問數(shù)據(jù)源,并通過OLE DB接口向OLE DB使用者提供數(shù)據(jù)。
數(shù)據(jù)庫引擎類型
你能用的數(shù)據(jù)庫引擎取決于mysql在安裝的時(shí)候是如何被編譯的。要添加一個(gè)新的引擎,就必須重新編譯MYSQL。在缺省情況下,MYSQL支持三個(gè)引擎:ISAM、MYISAM和HEAP。另外兩種類型INNODB和BERKLEY(BDB),也常??梢允褂?。
ISAM
ISAM是一個(gè)定義明確且歷經(jīng)時(shí)間考驗(yàn)的數(shù)據(jù)表格管理方法,它在設(shè)計(jì)之時(shí)就考慮到數(shù)據(jù)庫被查詢的次數(shù)要遠(yuǎn)大于更新的次數(shù)。因此,ISAM執(zhí)行讀取操作的速度很快,而且不占用大量的內(nèi)存和存儲(chǔ)資源。ISAM的兩個(gè)主要不足之處在于,它不支持事務(wù)處理,也不能夠容錯(cuò):如果你的硬盤崩潰了,那么數(shù)據(jù)文件就無法恢復(fù)了。如果你正在把ISAM用在關(guān)鍵任務(wù)應(yīng)用程序里,那就必須經(jīng)常備份你所有的實(shí)時(shí)數(shù)據(jù),通過其復(fù)制特性,MYSQL能夠支持這樣的備份應(yīng)用程序。
MYISAM
MYISAM是MYSQL的ISAM擴(kuò)展格式和缺省的數(shù)據(jù)庫引擎。除了提供ISAM里所沒有的索引和字段管理的大量功能,MYISAM還使用一種表格鎖定的機(jī)制,來優(yōu)化多個(gè)并發(fā)的讀寫操作。其代價(jià)是你需要經(jīng)常運(yùn)行OPTIMIZE TABLE命令,來恢復(fù)被更新機(jī)制所浪費(fèi)的空間。MYISAM還有一些有用的擴(kuò)展,例如用來修復(fù)數(shù)據(jù)庫文件的MYISAMCHK工具和用來恢復(fù)浪費(fèi)空間的MYISAMPACK工具。
MYISAM強(qiáng)調(diào)了快速讀取操作,這可能就是為什么MYSQL受到了WEB開發(fā)如此青睞的主要原因:在WEB開發(fā)中你所進(jìn)行的大量數(shù)據(jù)操作都是讀取操作。所以,大多數(shù)虛擬主機(jī)提供商和INTERNET平臺(tái)提供商只允許使用MYISAM格式。
HEAP
HEAP允許只駐留在內(nèi)存里的臨時(shí)表格。駐留在內(nèi)存里讓HEAP要比ISAM和MYISAM都快,但是它所管理的數(shù)據(jù)是不穩(wěn)定的,而且如果在關(guān)機(jī)之前沒有進(jìn)行保存,那么所有的數(shù)據(jù)都會(huì)丟失。在數(shù)據(jù)行被刪除的時(shí)候,HEAP也不會(huì)浪費(fèi)大量的空間。HEAP表格在你需要使用SELECT表達(dá)式來選擇和操控?cái)?shù)據(jù)的時(shí)候非常有用。要記住,在用完表格之后就刪除表格。
INNODB和BERKLEYDB
INNODB和BERKLEYDB(BDB)數(shù)據(jù)庫引擎都是造就MYSQL靈活性的技術(shù)的直接產(chǎn)品,這項(xiàng)技術(shù)就是MYSQL++ API。在使用MYSQL的時(shí)候,你所面對(duì)的每一個(gè)挑戰(zhàn)幾乎都源于ISAM和MYISAM數(shù)據(jù)庫引擎不支持事務(wù)處理也不支持外來鍵。盡管要比ISAM和MYISAM引擎慢很多,但是INNODB和BDB包括了對(duì)事務(wù)處理和外來鍵的支持,這兩點(diǎn)都是前兩個(gè)引擎所沒有的。如前所述,如果你的設(shè)計(jì)需要這些特性中的一者或者兩者,那你就要被迫使用后兩個(gè)引擎中的一個(gè)了。
-
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3733瀏覽量
64169 -
數(shù)據(jù)庫引擎
+關(guān)注
關(guān)注
0文章
5瀏覽量
6513
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論