以下摘自百度百科MySQL的數(shù)據(jù)庫引擎的類型你能用的數(shù)據(jù)庫引擎取決于mysql在安裝的時候是如何被編譯的,。要添加一個新的引擎,就必須重新編譯MYSQL,。在缺省情況下,,MYSQL支持三個引擎:ISAM、MYISAM和HEAP,。另外兩種類型INNODB和BERKLEY(BDB),,也常常可以使用,。 ISAMISAM是一個定義明確且歷經(jīng)時間考驗的數(shù)據(jù)表格管理方法,,它在設(shè)計之時就考慮到數(shù)據(jù)庫被查詢的次數(shù)要遠大于更新的次數(shù),。因此,ISAM執(zhí)行讀取操作的速度很快,,而且不占用大量的內(nèi)存和存儲資源,。ISAM的兩個主要不足之處在于,它不支持事務(wù)處理,,也不能夠容錯:如果你的硬盤崩潰了,,那么數(shù)據(jù)文件就無法恢復(fù)了。如果你正在把ISAM用在關(guān)鍵任務(wù)應(yīng)用程序里,,那就必須經(jīng)常備份你所有的實時數(shù)據(jù),,通過其復(fù)制特性,MYSQL能夠支持這樣的備份應(yīng)用程序,。 MYISAMMYISAM是MYSQL的ISAM擴展格式和缺省的數(shù)據(jù)庫引擎,。除了提供ISAM里所沒有的索引和字段管理的大量功能,MYISAM還使用一種表格鎖定的機制,,來優(yōu)化多個并發(fā)的讀寫操作,。其代價是你需要經(jīng)常運行OPTIMIZE TABLE命令,來恢復(fù)被更新機制所浪費的空間,。MYISAM還有一些有用的擴展,,例如用來修復(fù)數(shù)據(jù)庫文件的MYISAMCHK工具和用來恢復(fù)浪費空間的MYISAMPACK工具。 MYISAM強調(diào)了快速讀取操作,,這可能就是為什么MYSQL受到了WEB開發(fā)如此青睞的主要原因:在WEB開發(fā)中你所進行的大量數(shù)據(jù)操作都是讀取操作,。所以,大多數(shù)虛擬主機提供商和INTERNET平臺提供商只允許使用MYISAM格式,。 HEAPHEAP允許只駐留在內(nèi)存里的臨時表格,。駐留在內(nèi)存里讓HEAP要比ISAM和MYISAM都快,但是它所管理的數(shù)據(jù)是不穩(wěn)定的,,而且如果在關(guān)機之前沒有進行保存,,那么所有的數(shù)據(jù)都會丟失。在數(shù)據(jù)行被刪除的時候,,HEAP也不會浪費大量的空間,。HEAP表格在你需要使用SELECT表達式來選擇和操控數(shù)據(jù)的時候非常有用。要記住,,在用完表格之后就刪除表格,。 INNODB和BERKLEYDBINNODB和BERKLEYDB(BDB)數(shù)據(jù)庫引擎都是造就MYSQL靈活性的技術(shù)的直接產(chǎn)品,這項技術(shù)就是MYSQL++ API,。在使用MYSQL的時候,,你所面對的每一個挑戰(zhàn)幾乎都源于ISAM和MYISAM數(shù)據(jù)庫引擎不支持事務(wù)處理也不支持外來鍵。盡管要比ISAM和MYISAM引擎慢很多,,但是INNODB和BDB包括了對事務(wù)處理和外來鍵的支持,,這兩點都是前兩個引擎所沒有的。如前所述,,如果你的設(shè)計需要這些特性中的一者或者兩者,,那你就要被迫使用后兩個引擎中的一個了。 |
|
來自: 看風(fēng)景D人 > 《面試題2》