共享锁:共享锁是读锁,是在执行读取 *** 作的时候创建的。如果事务 T 对 数据 A 添加了共享锁,那么其他事务只能再对数据 A 添加 共享锁而不能添加其他类型的锁,对于已经添加了共享锁的事务,只能执行读 *** 作,而不能执行写 *** 作。共享锁的使用方式需要在查询语句后面添加 LOCK IN SHARE MODE
排它锁:排它锁是写锁,如果事务 T 对 数据 A 添加排它锁,那么其他事务就不能再添加其他类型的锁,已经添加了排它锁的事务,既能执行读 *** 作也能执行写 *** 作,排它锁的使用方式需要在查询语句中添加 FOR UPDATE
意向锁是表级锁,它主要用于在一个事务中表明下一行将要被请求的锁类型,INNODB 中的有两个表锁:意向共享锁、意向排它锁
意向共享锁:表明事务准备给数据行添加一个共享锁,一个数据行在被添加共享锁之前首先需要获取当前表的意向共享锁
意向排它锁:表明事务准备给数据行添加一个排它锁,一个数据行在被添加排它锁之前首先需要获取当前表的意向排它锁
意向锁是 INNODB 自动添加的,不需要用户干预
一般来说需要加锁。如过你的程序允许“脏读”也可以不加锁。所谓“脏读”是指一个线程正在修改共享变量,在没有完成修改情况,另一个线程读取了该变量,这时,获取的不是被修改共享变量的最终值。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)