1. 程式人生 > >MySQL儲存引擎--Memory

MySQL儲存引擎--Memory

Memory儲存引擎

memory儲存引擎是MySQL中的一類特殊的儲存引擎。其使用儲存在記憶體中的內容來建立表,而且所有資料也放在記憶體中。這些特性都與InnoDB,MyISAM儲存引擎不同。

OK,這裡我們講解一些memory儲存引擎的檔案儲存形式,索引型別,儲存週期和優缺點。

每個基於memory儲存引擎的表實際對應一個磁碟檔案,該檔案的檔名與表名相同,型別為frm型別。該檔案只儲存表的結構,而其資料檔案,都是儲存在記憶體中的,這樣有利於對資料的快速的處理,提高整個表的處理效率。


值得注意的是:伺服器需要有足夠的記憶體來維持memory儲存引擎的表的使用。如果不需要了,可以釋放這些記憶體,甚至可以刪除不需要的表。

Memory儲存引擎預設使用雜湊(HASH)索引,其速度比使用B型樹(BTREE)索引快。如果我們需要使用B型樹索引,可以在建立索引時選擇使用



這裡來整理一個小的技巧:

Memory儲存引擎通常很少用到,至少我是沒有用到過。因為Memory表的所有資料都是儲存在記憶體上的,如果記憶體出現異常會影響到資料的完整性。

如果重啟機器或者關機,表中的所有資料都將消失,因此,基於Memory儲存引擎的表的生命週期都比較短,一般都是一次性的。

Memory表的大小是受到限制的,表的大小主要取決於2個引數,分別是max_rows和max_heap_table_size。其中,max_rows可以在建立表時指定,max_heap_table_size的大小預設為16MB,可以按需要進行擴大。

因此,其基於記憶體中的特性,這類表的處理速度會非常快,但是,其資料易丟失,生命週期短基於其這個缺陷,選擇Memory儲存引擎時需要特別小心。