MySQL-锁机制

什么是锁

锁机制是并发控制的需要,分为共享锁和排他锁(也叫读锁和写锁)。

读锁是相互不阻塞的,即多个客户在同一时刻可以同时读取同一个资源,而互不干扰。

写锁是排他的,会阻塞其他的写锁和读锁。

锁粒度

锁粒度,就是锁的范围。理想情况下,锁的范围越小越好,只对会修改的数据片进行精准的锁定。即锁定的数据量越少,则系统的并发程度越高,只要相互之间不发生冲突即可。

加锁会消耗资源。

锁策略

所谓的锁策略,就是在锁的开销和数据的安全性之间寻求平衡,这种平衡当然也会影响性能。

每种 MySQL 存储引擎都可以实现自己的锁策略和锁粒度。

表锁

表锁是 MySQL 中最基本的锁策略,并且是开销最小的策略。

尽管存储引擎可以管理自己的锁,MySQL 本身还是会使用各种有效地表锁来实现不同的目的。例如,服务器会为诸如 ALTER TABLE之类的语句使用表锁,而忽略存储引擎的锁机制。

行级锁

行级锁可以最大程度地支持并发处理(同时也带来了最大的锁开销)。

行级锁只在存储引擎层实现

服务器层完全不了解存储引擎中锁的实现。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容