MySql基础--锁

无论何时,只要多个查询需要在同一时刻修改数据,都会产生并发控制的问题。mysql有两个层面的并发:存储引擎层和服务器层。

一般解决并发都会通过锁机制实现,数据库中也是如此。

锁的类型

在处理并发的读取或者写入时,会有两种类型的锁:

1,读锁,也叫共享锁:共享的,相互不会阻塞的

2. 写锁,也叫排他锁,一个写锁会阻塞其他的写锁和读锁,这样可以确保在给定的时间,只有一个用户在写入操作并防止其他用户读取正在被写入的资源。

锁的粒度

锁的粒度是为了提高并发的性能的。尽量只要锁定需要修改的部分数据,而不是所有的资源。

分为:

1,表锁 ,开销最小的策略,锁定整张表。虽然存储引擎可以管理自己的锁,但是mysql还是会通过各种有效的标所来实现目的。比如说服务器会为ALTER TABLE等操作使用标所,忽略存储引擎的锁机制(行级锁)。

2.行级锁,可以最大程度支持并发,只在存储引擎级别实现,在mysql服务器层没有实现。

 

原文地址:https://www.cnblogs.com/CongLollipop/p/6637015.html