mysql數據庫引擎

mysql數據庫引擎
========================


數據庫引擎是在我們編譯安裝mysql的時候確定下來的。也就是說如果我們想換一個數據庫引擎,也就要重新編譯mysql。我們也可以使用mysql和api來編譯我們自己的數據庫引擎, 當然這個是建立在你對數據庫底層非常瞭解的地步。所以我們想要添加一個新的數據庫引擎的時候,那麼就編譯吧。這個在unix環境下是非常普遍的(爲了增加某一個特性而去編譯程序)。


默認情況mysql支持三個引擎:ISAM,MyISAM,HEAP。另外兩種類型InnoDB和Berkley(BDB),也常常可以使用。


ISAM
-----------------------


ISAM是一個定義明確的數據表格管理方法,它在設計之時就認爲數據庫被查詢的次數要遠大於更新的次數。因此,ISAM執行讀取操作的速度很快,且不佔用大量的內存和存儲資源。


ISAM的兩個主要不足之處在於,


+ 它不支持事務處理
+ 不能夠容錯


如果硬盤崩潰,數據文件就無法恢復了。如果正在把ISAM用在關鍵任務應用程序裏,那就必須經常備份你所有的實時數據,通過其複製特性,mysql能夠支持這樣的備份應用程序。


MyISAM
-----------------


MyISAM是mysql的ISAM擴展格式和缺省的數據庫mysql數據庫引擎。不僅提供ISAM裏沒有的索引和字 段管理的大量功能,MyISAM還使用一種表格鎖定的機制,來優化多個併發的讀寫操作。相應的代價是我們需要OPTIMIZE TABLE命令,來恢復被更新機制所浪費的空間。
MyISAM強調了快速讀取操作,這可能就是爲什麼MySQL受到了Web開發如此青睞的主要原因:在Web開發中你所 進行的大量數據操作都是讀取操作。所以,大多數虛擬主機提供商和Internet平臺提供商只允許使用MyISAM格式。


HEAP
--------------------------


HEAP允許只駐留在內存裏的臨時表格。駐留在內存裏讓HEAP要比ISAM和MyISAM都快,相應的它所管理的數據是不穩定的,而且如果在關機之前沒有進行保存,那麼所有的數據都會丟失。
HEAP表格在你需要使用SELECT表達式來選擇和操控數據的時候非常有用。要記住,在用完表格之後就刪除表格。讓我再重複一遍:在你用完表格之後,不要忘記刪除表格。


InnoDB  && BDB
------------------------


這兩個引擎比ISAM和MYISAM慢的多,但是InnoDB和BDB包括了對事務處理和外來鍵的支持,這兩點都是前兩個引擎所沒有的。


博客學習來之於[參考學習資料](http://blog.sina.com.cn/s/blog_8442befd010102np.html)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章