數(shù)據(jù)庫(kù)引擎是用于存儲(chǔ)、處理和保護(hù)數(shù)據(jù)的核心服務(wù)。利用數(shù)據(jù)庫(kù)引擎可控制訪問權(quán)限并快速處理事務(wù),從而滿足企業(yè)內(nèi)大多數(shù)需要處理大量數(shù)據(jù)的應(yīng)用程序的要求。 使用數(shù)據(jù)庫(kù)引擎創(chuàng)建用于聯(lián)機(jī)事務(wù)處理或聯(lián)機(jī)分析處理數(shù)據(jù)的關(guān)系數(shù)據(jù)庫(kù)。這包括創(chuàng)建用于存儲(chǔ)數(shù)據(jù)的表和用于查看、管理和保護(hù)數(shù)據(jù)安全的數(shù)據(jù)庫(kù)對(duì)象(如索引、視圖和存儲(chǔ)過程)。可以使用 SQL Server Management Studio 管理數(shù)據(jù)庫(kù)對(duì)象,使用 SQL Server Profiler 捕獲服務(wù)器事件。
常用的數(shù)據(jù)庫(kù)引擎有哪些
1.數(shù)據(jù)庫(kù)引擎
Microsoft JET (Joint Engineering Technologe) 是Access和Visual Basic所提供的內(nèi)嵌數(shù)據(jù)庫(kù)功能的核心元素。JET是一種全能關(guān)系數(shù)據(jù)庫(kù)引擎,可用來處理大多數(shù)中小型數(shù)據(jù)庫(kù)。所謂數(shù)據(jù)庫(kù)引擎是應(yīng)用程序和數(shù)據(jù)庫(kù)存儲(chǔ)之間的一種接口,它將與數(shù)據(jù)庫(kù)有關(guān)的內(nèi)存管理、游標(biāo)管理和錯(cuò)誤管理等具體而復(fù)雜的細(xì)節(jié)問題抽象為一個(gè)既高度一致又簡(jiǎn)化的編程接口。
Jet數(shù)據(jù)庫(kù)引擎包含在一組動(dòng)態(tài)鏈接庫(kù)(DLL)文件中,在運(yùn)行時(shí),這些文件被鏈接到Visual Basic程序。它把應(yīng)用程序的請(qǐng)求翻譯成對(duì).mdb文件或其他數(shù)據(jù)庫(kù)的物理操作。它真正讀取、寫入和修改數(shù)據(jù)庫(kù),并處理所有內(nèi)部事務(wù),如索引、鎖定、安全性和引用完整性等。它還包含一個(gè)查詢處理器,用于接收并執(zhí)行結(jié)構(gòu)化查詢語言(SQL)的查詢來實(shí)現(xiàn)所需的數(shù)據(jù)庫(kù)操作。另外,Jet數(shù)據(jù)庫(kù)引擎還包含一個(gè)結(jié)果處理器.用來管理查詢所返回的結(jié)果。
2.ODBC
Open DataBase Connectivity(ODBC,開放數(shù)據(jù)庫(kù)互連)是由Microsoft定義的一種數(shù)據(jù)庫(kù)訪問標(biāo)準(zhǔn),它提供一種標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)訪問方法以訪問不同平臺(tái)的數(shù)據(jù)庫(kù)。一個(gè)ODBC應(yīng)用程序既可以訪問在本地PC機(jī)上的數(shù)據(jù)庫(kù),也可以訪問多種異構(gòu)平臺(tái)上的數(shù)據(jù)庫(kù),例如SQL Server、Oracle或者DB2。
ODBC本質(zhì)上是一組數(shù)據(jù)庫(kù)訪問API(應(yīng)用編程接口),但編程人員通過ODBC訪問數(shù)據(jù)庫(kù)時(shí)無需深入理解ODBC函數(shù)就可以訪問ODBC功能,這是因?yàn)橄骎isual Basic這樣的開發(fā)工具都提供了一些對(duì)象封裝了ODBC函數(shù)。
3.OLE DB
OLE DB是Microsoft開發(fā)的最新數(shù)據(jù)庫(kù)訪問接口,Microsoft將其定義為ODBC接班人。與ODBC類似,OLE DB提供了對(duì)關(guān)系數(shù)據(jù)庫(kù)的訪問,同時(shí)在此基礎(chǔ)上,它對(duì)ODBC所提供的功能進(jìn)行了一部分的擴(kuò)展。作為一種標(biāo)準(zhǔn)的接口,OLE DB可以訪問所有類型的數(shù)據(jù),包括關(guān)系數(shù)據(jù)庫(kù)、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ù)庫(kù)引擎類型
你能用的數(shù)據(jù)庫(kù)引擎取決于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ù)庫(kù)被查詢的次數(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ù)庫(kù)引擎。除了提供ISAM里所沒有的索引和字段管理的大量功能,MYISAM還使用一種表格鎖定的機(jī)制,來優(yōu)化多個(gè)并發(fā)的讀寫操作。其代價(jià)是你需要經(jīng)常運(yùn)行OPTIMIZE TABLE命令,來恢復(fù)被更新機(jī)制所浪費(fèi)的空間。MYISAM還有一些有用的擴(kuò)展,例如用來修復(fù)數(shù)據(jù)庫(kù)文件的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ù)庫(kù)引擎都是造就MYSQL靈活性的技術(shù)的直接產(chǎn)品,這項(xiàng)技術(shù)就是MYSQL++ API。在使用MYSQL的時(shí)候,你所面對(duì)的每一個(gè)挑戰(zhàn)幾乎都源于ISAM和MYISAM數(shù)據(jù)庫(kù)引擎不支持事務(wù)處理也不支持外來鍵。盡管要比ISAM和MYISAM引擎慢很多,但是INNODB和BDB包括了對(duì)事務(wù)處理和外來鍵的支持,這兩點(diǎn)都是前兩個(gè)引擎所沒有的。如前所述,如果你的設(shè)計(jì)需要這些特性中的一者或者兩者,那你就要被迫使用后兩個(gè)引擎中的一個(gè)了。
-
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3872瀏覽量
65318 -
數(shù)據(jù)庫(kù)引擎
+關(guān)注
關(guān)注
0文章
5瀏覽量
6556
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
Delphi中數(shù)據(jù)庫(kù)引擎BDE介紹
詳解Mysql數(shù)據(jù)庫(kù)InnoDB存儲(chǔ)引擎事務(wù)
為什么要選擇嵌入式內(nèi)存數(shù)據(jù)庫(kù)引擎?
Hsqldb數(shù)據(jù)庫(kù)的相關(guān)資料分享
基于面向?qū)ο蟮倪^程實(shí)時(shí)數(shù)據(jù)庫(kù)引擎設(shè)計(jì)
數(shù)據(jù)庫(kù)引擎及底層實(shí)現(xiàn)原理

數(shù)據(jù)庫(kù)引擎如何安裝

數(shù)據(jù)庫(kù)引擎是什么

數(shù)據(jù)庫(kù)學(xué)習(xí)教程之數(shù)據(jù)庫(kù)的發(fā)展?fàn)顩r如何數(shù)據(jù)庫(kù)有什么新發(fā)展

云數(shù)據(jù)庫(kù)和自建數(shù)據(jù)庫(kù)的區(qū)別及應(yīng)用

AlloyDB數(shù)據(jù)庫(kù)云服務(wù)的優(yōu)勢(shì)
SQLite數(shù)據(jù)庫(kù)多平臺(tái)應(yīng)用及常見錯(cuò)誤分析有哪些

有哪些不同的MySQL數(shù)據(jù)庫(kù)引擎?
oracle數(shù)據(jù)庫(kù)alert日志作用
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—未開啟binlog的Mysql數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)案例

評(píng)論