MySQL中兩種引擎的簡單比較

2021-09-06 21:13:16 字數 631 閱讀 7566

mysql中存在兩種引擎:myisam和innodb。

其中myisam是mysql預設的引擎,它不支援事物操作,而且也不支援行級鎖及外來鍵。因此,當寫操作較多時(如insert或者update),由於鎖定了整個表,所以效率會低一些。myisam中儲存了表的行數,當進行select count(*) from table時不需要全表掃瞄,只需要直接讀取即可。

和myisam不同的是,innodb提供了資料庫事物的支援,並且提供了行級鎖和外來鍵約束。mysql執行時innodb會在記憶體中建立索引池,用於緩衝資料和索引。不過innodb不支援全文索引,啟動速度較慢,並且不儲存表的行數。innodb在併發下效率較高。

以下是關於二者的比較

對比項myisam

innodb

事物不支援

支援主外來鍵

不支援支援

行表鎖表鎖

行鎖快取

只快取索引,不快取真實資料

不僅快取索引,還快取真實資料

表空間小

大全文索引

支援不支援

關注點效能

事物應用場景

管理非事物表,提供高速儲存和檢索以及全文搜尋的能力,有大量的select操作

事物處理,有大量的insert和update操作,併發下

mysql的兩種引擎 mysql的兩種儲存引擎

背景 最近在使用spring data jpa操作mysql,在使用jpa的自動建表功能之後,處理多對多關係 manytomany的時候,spring data jpa會給中間表的兩個欄位都加上外來鍵引用。當前使用的版本預設的資料庫儲存引擎為myisam。這種儲存引擎是為資料庫查詢效能而生的,不支援...

mysql執行引擎 Mysql兩種引擎

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

MySQL兩種引擎的區別

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