admin 管理员组文章数量: 1086019
2024年4月14日发(作者:booth算法的原理)
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
数据库,高并发,死锁,解决方案
篇一:读《MySQL性能调优与架构设计》笔记之MySQL 数
据库锁定机制
1. MySQL锁定机制简介
MySQL 各存储引擎使用了三种类型(级别)的锁定机
制:行级锁定,页级锁定和表级锁定。下面我们先分析一下
MySQL 这三种锁定的特点和各自的优劣所在。
? 行级锁定(row-level)
行级锁定最大的特点就是锁定对象的颗粒度很小,也
是目前各大数据库管理软件所实现的锁定颗粒度最小的。由
于锁定颗粒度很小,所以发生锁定资源争用的概率也最小,
能够给予应用程序尽可能大的并发处理能力而提高一些需
要高并发应用系统的整体性能。
虽然能够在并发处理能力上面有较大的优势,但是行
级锁定也因此带来了不少弊端。由于锁定资源的颗粒度很小,
所以每次获取锁和释放锁需要做的事情也更多,带来的消耗
自然也就更大了。此外,行级锁定也最容易发生死锁。 ? 表
级锁定(table-level)
和行级锁定相反,表级别的锁定是MySQL 各存储引擎
中最大颗粒度的锁定机制。该锁定机制最大的特点是实现逻
辑非常简单,带来的系统负面影响最小。所以获取锁和释放
锁的速度很快。由于表级锁一次会将整个表锁定,所以可以
1文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
很好的避免困扰我们的死锁问题。
当然,锁定颗粒度大所带来最大的负面影响就是出现
锁定资源争用的概率也会最高,致使并大度大打折扣。
? 页级锁定(page-level)
页级锁定是MySQL 中比较独特的一种锁定级别,在其
他数据库管理软件中
也并不是太常见。页级锁定的特点是锁定颗粒度介于行
级锁定与表级锁之间,所以获取锁定所需要的资源开销,以
及所能提供的并发处理能力也同样是介于上面二者之间。另
外,页级锁定和行级锁定一样,会发生死锁。
在数据库实现资源锁定的过程中,随着锁定资源颗粒
度的减小,锁定相同数据量的数据所需要消耗的内存数量是
越来越多的,实现算法也会越来越复杂。不过,随着锁定资
源颗粒度的减小,应用程序的访问请求遇到锁等待的可能性
也会随之降低,系统整体并发度也随之提升。
在MySQL 数据库中,使用表级锁定的主要是MyISAM,
Memory,CSV 等一些非事务性存储引擎,而使用行级锁定的
主要是Innodb 存储引擎和NDB Cluster 存储引擎,页级锁
定主要是BerkeleyDB存储引擎的锁定方式。
2. 合理利用锁机制优化MySQL
MyISAM表锁优化建议
对于MyISAM 存储引擎,虽然使用表级锁定在锁定实现
2文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
版权声明:本文标题:数据库,高并发,死锁,解决方案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1713078788a618810.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论