锁机制

Posted zawjdbb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了锁机制相关的知识,希望对你有一定的参考价值。

解决数据库并发控制问题并实现事务的各个隔离级别

共享锁:代号S锁,锁粒度是行或者元组(多个行),一个事务获取了共享锁后,可以对锁定范围内的数据进行读操作

排他锁:代号X锁,锁粒度与共享锁相同,一个事务获取了共享锁后,可以对锁定范围内的数据进行读和写操作

  事务A获取了一个元组的共享锁,事务B还可以立即获取这个元组的共享锁,但不能立即获取这个元组的排他锁,必须等到事务A释放共享锁之后

  事务A获取了一个元组的排他锁,事务B不能获取这个元组的共享锁和排他锁

意向锁:锁粒度是整张表,分为意向共享锁(IS)和意向排他锁(IX),表示事务有意对数据上共享锁或者排他锁,但还没有真正执行

锁和锁之间要么相容要么互斥

锁a和锁b相容:操作同一组数据时,如果事务A获取了锁a,事务B还可以获取锁b

锁a和锁b互斥:操作同一组时间时,事务A获取了锁a,事务B在事务A释放锁a前不能获取锁b

锁粒度越大,并发越小,系统资源消耗越小,锁粒度主要分为表锁和行锁

表锁管理锁的开销最小,但并发量也最小,MyISAM使用表锁

行锁可以支持最大的并发,InnoDB使用行锁

以上是关于锁机制的主要内容,如果未能解决你的问题,请参考以下文章

Java 并发编程线程锁机制 ( 线程安全 | 锁机制 | 类锁 | 对象锁 | 轻量级锁 | 重量级锁 )

锁机制,信号机制及事件机制

锁机制(自旋锁-乐观锁-悲观锁)

锁机制,信号机制,事件机制

JAVA中的内锁机制是啥

MySQL InnoDB锁机制