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表的寫操作,則會阻塞其他使用者對同一表的讀和寫操作...