Innodb與Myisam引擎的區別與應用場景

2021-08-25 17:06:50 字數 976 閱讀 3766

1. 區別:

(1)事務處理:

myisam是非事務安全型的,而innodb是事務安全型的(支援事務處理等高階處理);

(2)鎖機制不同:

myisam是表級鎖,而innodb是行級鎖;

(3)select ,update ,insert ,delete 操作:

myisam:如果執行大量的select,myisam是更好的選擇

innodb:如果你的資料執行大量的insert或update,出於效能方面的考慮,應該使用innodb表

(4)查詢表的行數不同:

myisam:select count(*) from table,myisam只要簡單的讀出儲存好的行數,注意的是,當count(*)語句包含   where條件時,兩種表的操作是一樣的

innodb : innodb 中不儲存表的具體行數,也就是說,執行select count(*) from table時,innodb要掃瞄一遍整個表來計算有多少行

(5)外來鍵支援:

mysiam表不支援外來鍵,而innodb支援

2. 為什麼myisam會比innodb 的查詢速度快。

innodb在做select的時候,要維護的東西比myisam引擎多很多;

1)資料塊,innodb要快取,myisam只快取索引塊,  這中間還有換進換出的減少; 

2)innodb定址要對映到塊,再到行,myisam 記錄的直接是檔案的offset,定位比innodb要快

3)innodb還需要維護mvcc一致;雖然你的場景沒有,但他還是需要去檢查和維護

mvcc ( multi-version concurrency control )多版本併發控制 

3. 應用場景

myisam適合:(1)做很多count 的計算;(2)插入不頻繁,查詢非常頻繁;(3)沒有事務。

innodb適合:(1)可靠性要求比較高,或者要求事務;(2)表更新和查詢都相當的頻繁,並且行鎖定的機會比較大的情況。

MyISAM引擎與InnoDB引擎效能的對比測試

mysql中myisam 引擎與innodb 引擎效能的對比測試 首先介紹一下 硬體 和 軟體 的配置。1 硬體配置 cpu amd2500 1.8g 記憶體 1g 現代 硬碟 80g ide 2 軟體配置 os windows xp sp2 se php5.2.1 db mysql5.0.37 w...

Innodb與Myisam引擎的對比

1.區別 1 事務處理 myisam是非事務安全型的,而innodb是事務安全型的 支援事務處理等高階處理 2 鎖機制不同 myisam是表級鎖,而innodb是行級鎖 3 select update insert delete 操作 myisam 如果執行大量的select,myisam是更好的選...

MyISAM與InnoDB儲存引擎的區別

mysql表級鎖有兩種模式 表共享讀鎖 table read lock 和表獨佔寫鎖 table write lock 什麼意思呢,就是說對myisam表進行讀操作時,它不會阻塞其他使用者對同一表的讀請求,但會阻塞 對同一表的寫操作 而對myisam表的寫操作,則會阻塞其他使用者對同一表的讀和寫操作...