Mysql的兩種引擎的區別

2022-05-04 16:48:07 字數 976 閱讀 4997

innodb引擎概述

innodb引擎提供了對資料庫acid事務的支援,並且實現了sql標準的四種隔離級別。該引擎還提供了行級鎖和外來鍵約束,它的設計目標是處理大容量資料庫系統,它本身其實就是基於mysql後台的完整資料庫系統,mysql執行時innodb會在記憶體中建立緩衝池,用於緩衝資料和索引。但是該引擎不支援fulltext型別的索引,而且它沒有儲存表的行數,當select count(*) from table時需要掃瞄全表。當需要使用資料庫事務時,該引擎當然是首選。由於鎖的粒度更小,寫操作不會鎖定全表,所以在併發較高時,使用innodb引擎會提公升效率。但是使用行級鎖也不是絕對的,如果在執行乙個sql語句時mysql不能確定要掃瞄的範圍,innodb表同樣會鎖全表。

myisam引擎概述

myisam是mysql預設的引擎,但是它沒有提供對資料庫事務的支援,也不支援行級鎖和外來鍵,因此當insert(插入)或update(更新)資料時即寫操作需要鎖定整個表,效率便會低一些。不過和innodb不同,myisam中儲存了表的行數,於是select count(*) from table時只需要直接讀取已經儲存好的值而不需要進行全表掃瞄。如果表的讀操作遠遠多於寫操作且不需要資料庫事務的支援,那麼myisam也是很好的選擇。

簡單介紹區別:

1、myisam是非事務安全的,而innodb是事務安全的

2、myisam鎖的粒度是表級的,而innodb支援行級鎖

3、myisam支援全文型別索引,而innodb不支援全文索引

4、myisam相對簡單,效率上要優於innodb,小型應用可以考慮使用myisam

5、myisam表儲存成檔案形式,跨平台使用更加方便

應用場景:

1、myisam管理非事務表,提供高速儲存和檢索以及全文搜尋能力,如果再應用中執行大量select操作,應該選擇myisam

2、innodb用於事務處理,具有acid事務支援等特性,如果在應用中執行大量insert和update操作,應該選擇innodb

原文:

MySQL兩種引擎的區別

innodb引擎提供了對資料庫acid事務的支援,並且實現了sql標準的四種隔離級別。該引擎還提供了行級鎖和外來鍵約束,它的設計目標是處理大容量資料庫系統,它本身其實就是基於mysql後台的完整資料庫系統,mysql執行時innodb會在記憶體中建立緩衝池,用於緩衝資料和索引。但是該引擎不支援ful...

Mysql 兩種引擎的區別

myisam與innodb的區別是什麼?1 儲存結構 myisam 每個myisam在磁碟上儲存成三個檔案。第乙個檔案的名字以表的名字開始,副檔名指出檔案型別。frm檔案儲存表定義。資料檔案的擴充套件名為.myd mydata 索引檔案的副檔名是.myi myindex innodb 所有的表都儲存...

Mysql 兩種儲存引擎的區別

1 支援acid的事務,支援事務的四種隔離級別 2 支援行級鎖及外來鍵約束 因此可以支援寫併發 3 不儲存總行數 4 乙個innodb引擎儲存在乙個檔案空間 共享表空間,表大小不受作業系統控制,乙個表可能分布在多個檔案裡 也有可能為多個 設定為獨立表空,表大小受作業系統檔案大小限制,一般為2g 受作...