https://www.cnblogs.com/boblogsbo/p/5602122.html
mysql锁机制
①表级锁
②行级锁
共享锁(读锁):简称S锁,
多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改
排他锁(写锁):简称X锁,
排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,
其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获取
排他锁的事务是可以对数据就行读取和修改。
mysql InnoDB引擎默认的修改数据语句,update,delete,insert都会自动给涉及到的数据加上排他锁,
select语句默认不会加任何锁类型,
如果加排他锁可以使用select ...for update语句,加共享锁可以使用select ... lock in share mode语句
所以加过排他锁的数据行在其他事务种是不能修改数据的,也不能通过for update和lock in share mode锁的方式查询数据,
但可以直接通过select ...from...查询数据,因为普通查询没有任何锁机制。
乐观锁
悲观锁:共享锁、排他锁