Mysql儲存引擎介紹和使用建議

2021-10-04 20:50:29 字數 1777 閱讀 3642

1.介紹

資料庫儲存引擎是資料庫底層元件,資料庫管理系統使用資料引擎進行建立、查詢、更新和刪除資料操作。不同的儲存引擎提供不同的儲存機制、索引技巧、鎖定水平等功能,使用不同的儲存引擎還可以獲得特定的功能。我們可以通過show engines;

2.多種儲存引擎說明

innodb儲存引擎

innodb越做越好從mysql5.5版本之後,mysql的缺省內置儲存引擎已經是innodb,

主要特點有:myisam儲存引擎

在5.5版本之前,myisam是mysql的預設儲存引擎,該儲存引擎併發性差,不支援事務,所以使用場景比較少,

主要特點:

1)不支援事務;

2)不支援外來鍵,如果強行增加外來鍵,不會提示錯誤,只是外來鍵不其作用;

3)對資料的查詢快取只會快取索引,不會像innodb一樣快取資料,而且是利用作業系統本身的快取;

4)預設的鎖粒度為表級鎖,所以併發度很差,加鎖快,鎖衝突較少,所以不太容易發生死鎖;

5)支援全文索引(mysql5.6之後,innodb儲存引擎也對全文索引做了支援),但是mysql的全文索引基本不會使用,對於全文索引,現在有其他成熟的解決方案,比如:elasticsearch,solr,sphinx等;

6)資料庫所在主機如果宕機,myisam的資料檔案容易損壞,而且難恢復。

memory儲存引擎

將資料存在記憶體中,和市場上的redis,memcached等思想類似,為了提高資料的訪問速度,

主要特點:

1)支援的資料型別有限制,不支援text和blob型別,對於字串型別的資料,只支援固定長度的行,varchar會被自動儲存為char型別;

2)支援的鎖粒度為表級鎖。所以,在訪問量比較大時,表級鎖會成為memory儲存引擎的瓶頸;

3)由於資料是存放在記憶體中,所以在伺服器重啟之後,所有資料都會丟失;

4)查詢的時候,如果有用到臨時表,而且臨時表中有blob,text型別的字段,那麼這個臨時表就會轉化為myisam型別的表,效能會急劇降低。

archive儲存引擎

1)archive儲存引擎適合的場景有限,由於其支援壓縮,故主要是用來做日誌,流水等資料的歸檔,

主要特點:

2)支援zlib壓縮,資料在插入表之前,會先被壓縮;

3)僅支援select和insert操作,存入的資料就只能查詢,不能做修改和刪除;

4)只支援自增鍵上的索引,不支援其他索引。

csv儲存引擎

資料中轉試用,

主要特點:

1)其資料格式為.csv格式的文字,可以直接編輯儲存;

2)匯入匯出比較方便,可以將某個表中的資料直接匯出為csv,試用excel辦公軟體開啟。

3.使用建議:

如果沒有特殊需求預設使用innodb引擎即可;

myisam儲存引擎:以讀寫插入為主的應用程式,比如部落格系統、新聞門戶**;

innodb:更新(刪除)操作頻率也高,或者要保證資料的完整性;併發量高,支援事務和外來鍵保證資料完整性。比如oa自動化辦公系統。

mysql儲存引擎介紹 MySQL儲存引擎簡單介紹

mysql使用的是外掛程式式儲存引擎。主要包含儲存引擎有 myisam。innodb,ndb cluster,maria。falcon,memory,archive,merge。federated。當中最為廣泛的是myisam 和innodb兩種儲存引擎,所以接下來對它們做簡介。myisam 儲存引...

mysql儲存引擎介紹 MySQL儲存引擎介紹

toc innodb儲存引擎 其特點十行鎖設計 支援危機,並支援型別與oracle的非鎖定讀,即預設讀取操作不會產生鎖。innodb通過使用多版本併發控制 mvcc 來獲取高併發性,並且實現了sql標準的4種隔離,預設為repeatable級別。同時使用一種被稱為next keylocking的策略...

MySQL儲存引擎介紹

1.mysql儲存引擎對比 如上圖所示,為幾種常見的儲存引擎的對比,當然還有像csv儲存引擎 不支援索引 和blackhole黑洞引擎 寫入的資料都會消失,一般用作資料複製的中繼 等,但myisam和innodb引擎是最常見的,myisam適用於事務的處理不多的情況,innodb適用於事務處理比較多...