mysql heap儲存引擎 Mysql儲存引擎

2021-10-18 09:22:13 字數 1808 閱讀 1822

mysql中的資料用各種不同的技術儲存在檔案(或者記憶體)中。這些技術中的每一種技術都使用不同的儲存機制、索引技巧、鎖定水平並且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。這些不同的技術以及配套的相關功能在mysql中被稱作儲存引擎(也稱作表型別)。mysql預設配置了許多不同的儲存引擎,可以預先設定或者在mysql伺服器中啟用。你可以選擇適用於伺服器、資料庫和**的儲存引擎,以便在選擇如何儲存你的資訊、如何檢索這些資訊以及你需要你的資料結合什麼效能和功能的時候為你提供最大的靈活性。

使用以下命令可以檢視mysql支援的引擎:

mysql> show engines;

一、myisam儲存引擎

預設的儲存引擎,提供高速儲存和檢索,以及全文搜尋能力。

不支援事務。表級鎖。不能在表損壞後恢復資料。

每個表會生成三個檔案(檔名就是表名):

.frm 表結構;

.myd 資料;

.myi 索引。

適合在以下幾種情況下使用:

1.做很多count的計算

2.查詢非常頻繁

二、innodb儲存引擎

具有提交、回滾和崩潰恢復能力的事務安全(acid相容)儲存引擎。

基於聚簇索引建立,聚簇索引對主鍵查詢有很高的效能。不過它的二級索引(secondary index,非主鍵索引)中必須包含主鍵列,所以如果主鍵列很大的話,其他的所有索引都會很大。因此表上的索引較多的話,主鍵應當盡可能的小。

支援事務和外來鍵。行級鎖。

適合在以下幾種情況下使用:

1.更新和查詢都相當的頻繁,多重併發

2.要求事務,或者可靠性要求比較高

3.外來鍵約束,mysql支援外來鍵的儲存引擎只有innodb

一般來說,如果需要事務支援,並且有較高的併發讀取頻率,innodb是不錯的選擇。

三、memory(heap)引擎

資料儲存在記憶體中,擁有極高的插入、更新和查詢效率。但是不穩定,重啟以後資料都會丟失。

不支援事務。支援表級鎖,因此併發寫入的效能較低。

支援長度不變的資料型別,不支援blob或text長度可變的資料型別。varchar是一種長度可變的型別,但因為它在mysql內部當做長度固定不變的char型別,所以可以使用。

每個表會生成乙個.frm檔案,該檔案只儲存表的結構。

支援hash索引和b-tree索引,擎預設使用hash索引。b-tree索引的優於hash索引的是,可以使用部分查詢和通配查詢,也可以使用和》=等操作符方便資料探勘。hash索引進行「相等比較」非常快,但是對「範圍比較」的速度就慢多了,因此hash索引值適合使用在=和<>的操作符中,不適合在操作符中,也同樣不適合用在order by子句中。

在記憶體中存放資料,所以會造成記憶體的使用,可以通過引數max_heap_table_size控制memory表的大小。

四、archive引擎

擁有很好的壓縮機制,它使用zlib壓縮庫,在記錄被請求時會實時壓縮。

支援最基本的插入和查詢兩種功能。在mysql 5.5開始支援索引。

不支援事務。支援行級鎖和專用的快取區,所以可以實現高併發的插入。

適合儲存大量日誌、歷史資料。

五、blackhole引擎

接受但不儲存資料,但是如果mysql啟用了二進位制日誌,sql語句被寫入日誌(並被複製到從伺服器)。

用於做日誌記錄或同步歸檔的中繼儲存。但這種應用方式會碰到很多問題,因此並不推薦。

支援事務,而且支援mvcc的行級鎖。

六、csv引擎

每個表會生成乙個.csv檔案,將csv型別的檔案當做表進行處理。

把資料以逗號分隔的格式儲存在文字檔案中,這種檔案是一種普通文字檔案

my建立儲存過程(基礎2)

delimiter 的作用 這個命令就是告訴mysql直譯器,該段命令是否已經結束了,mysql是否可以執行了。預設情況下,delimiter是分號 在命令列客戶端中,如果有一行命令以分號結束,那麼回車後,mysql將會執行該命令。如輸入下面的語句 mysql select from test ta...

Mysql 儲存引擎之 MyISAM儲存引擎

myisam是預設儲存引擎。每個myisam在磁碟上儲存成三個檔案。frm檔案儲存表定義 myd檔案儲存資料 myi檔案儲存索引。要明確表示你想要用乙個myisam 請用engine表選項指出來 create table test myisam id int engine myisam 2 如下是m...

mysql儲存引擎 mysql儲存引擎簡介

精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...