1、同享锁(Shared Lock,也叫S锁)
同享锁(S)示意对数据举行读操纵。因而多个事件能够同时为一个对象加同享锁。
发作同享锁的sql语句:
select * from ad_plan lock in share mode;
2、排他锁(Exclusive Lock,也叫X锁)
排他锁示意对数据举行写操纵。假如一个事件对对象加了排他锁,其他事件就不能再给它加任何锁了。
发作排他锁的sql语句:
select * from ad_plan for update;
3、行锁(Row Lock)
对一行纪录加锁,只影响一条纪录。
平常用在DML语句中,如INSERT, UPDATE, DELETE等。
InnoDB行锁是经由过程给索引上的索引项加锁来完成的,这一点MySQL与Oracle差别,后者是经由过程在数据块中对响应数据行加锁来完成的。
InnoDB这类行锁完成特性意味着:只要经由过程索引前提检索数据,InnoDB才运用行级锁,不然,InnoDB将运用表锁!
4、锁的密度
依据锁的级别或密度来分别,MySQL有三种锁的级别:页级、表级、行级。
(1)表级锁
开支小,加锁快;不会涌现死锁;锁定粒度大,发作锁争执的几率最高,并发度最低。
(2)行级锁
开支大,加锁慢;会涌现死锁;锁定粒度最小,发作锁争执的几率最低,并发度也最高。
(3)页面锁
开支和加锁时候界于表锁和行锁之间;会涌现死锁;锁定粒度界于表锁和行锁之间,并发度平常。
以上就是mysql数据库锁有哪些的细致内容,更多请关注ki4网别的相干文章!