1. 程式人生 > >Innodb中的行鎖與表鎖

Innodb中的行鎖與表鎖

ora 加鎖 表鎖 語句 www targe 都是 速度慢 檢索

在Innodb引擎中既支持行鎖也支持表鎖,那麽什麽時候會鎖住整張表,什麽時候或只鎖住一行呢?

InnoDB行鎖是通過給索引上的索引項加鎖來實現的,這一點MySQL與Oracle不同,後者是通過在數據塊中對相應數據行加鎖來實現的。InnoDB這種行鎖實現特點意味著:只有通過索引條件檢索數據,InnoDB才使用行級鎖,否則,InnoDB將使用表鎖!

在實際應用中,要特別註意InnoDB行鎖的這一特性,不然的話,可能導致大量的鎖沖突,從而影響並發性能。

行級鎖都是基於索引的,如果一條SQL語句用不到索引是不會使用行級鎖的,會使用表級鎖。行級鎖的缺點是:由於需要請求大量的鎖資源,所以速度慢,內存消耗大。

Innodb中的行鎖與表鎖