1:mysql 表锁、行锁、共享锁、排它锁
表锁:在进行并发的时候容易锁表,直接对整表进行for update 操作,其他进行不可对表进行写入更新操作,不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低。
行锁:在进行时锁定几条记录,直接对表记录进行锁定,其他不可进行更新操作,锁定粒度小,发生锁冲突的概率低容易死锁并发度高
共享锁:允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改
排它锁:又称写锁。允许获取排他锁的事务更新数据,阻止其他事务取得相同的数据集共享读锁和排他写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。