MyISAM和InnoDB鎖理解

2021-08-27 05:21:34 字數 657 閱讀 8988

mysql的儲存引擎是從myisam到innodb,鎖從表鎖到行鎖。後者的出現從某種程度上是彌補前者的不足。比如:

myisam不支援事務,innodb支援事務。

表鎖雖然開銷小,鎖表快,但高併發下效能低。行鎖雖然開銷大,鎖表慢,但高併發下相比之下效能更高。

事務和行鎖都是在確保資料準確的基礎上提高併發的處理能力。

mysql的表鎖有兩種模式:表共享讀鎖(table read lock)和表獨佔寫鎖(table write lock)

說明

1.myisam表的讀操作,不會阻塞其他使用者對同乙個表的讀請求,但會阻塞對同乙個表的寫請求。

2.myisam表的寫操作,會阻塞其他使用者對同乙個表的讀和寫操作。

3.myisam表的讀、寫操作之間、以及寫操作之間是序列的。

4.myisam表始終是寫鎖優先的,如果現在乙個使用者正在讀,其他使用者等待讀,此時進來乙個寫操作,那麼這個寫操作會被排在第乙個正在讀的使用者後面,即第2個執行(被讀阻塞)

InnoDB和MyISAM的鎖的區別和聯絡

innodb預設是行級鎖,支援表鎖,也就在innodb中更新某條資料會對行上鎖,如果是排他鎖,那麼其他的事務訪問這一行的資料需要等鎖釋放之後才能進行,而對其他行資料是沒有影響的。myisam預設是表級鎖,不支援行級鎖,也就是在myisam中進行某條資料更新時,會對整個表上鎖,所有的其他事務對錶中對資...

對比MyISAM與InnoDB關於鎖方面的區別

myisam表 由於myisam無事務,所以我們想測試鎖,需要執行大資料量語句。開啟多個查詢視窗 每個視窗代表乙個session,後用s1 s2代表兩個視窗 讀鎖 共享鎖 用s1,查詢乙個myisam表前200w條資料,同時s2更新第200001條,s2進入阻塞,等待s1查詢執行完,s2才能執行 用...

InnoDB和MyIsAM的區別

myisam型別不支援事務處理等高階處理,而innodb型別支援 這是網上對myisam和innodb的解釋,很抽象吧,我們用白話的方式解釋一下 其實也比較簡單 所謂事務處理,就是原子性操作。打個比方,支援事務處理的innodb表,建設乙個中,發帖是給積分的。你發了乙個帖子執行乙個insert語句,...