mysql中select會鎖表嗎?正確答案是會鎖表,有些情況是表鎖,有些情況是行鎖,
有的認為mysql的 select 會鎖表 ,有的認為 mysql 的查詢不會鎖表 ,
其實這2種觀點都有些片面,
鎖表跟存盤引擎INNODB 和MYISAM關系很大,
對于myisam的表select 是會鎖定表的 ,會導致其他操作掛起,處于等待狀態,
對于innodb的表select 有些情況是表鎖,有些情況是行鎖,
由于InnoDB預設的是Row-Level Lock,只有明確指定主鍵的時候MySql才會執行Row lock,否則MySql將會執行Table Lock.
1、明確指定主鍵則是行鎖
2、明確指定主鍵,若無資料則無鎖
3、無主鍵,table lock
4、主鍵不明確,table lock
注:MyAsim只支持表級鎖,InnerDB支持行級鎖,添加了(行級鎖/表級鎖)鎖的資料不能被其他事務再鎖定,也不能被其他事務修改,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/376976.html
標籤:其他
下一篇:奧賽一本通1028:字符菱形
