• ADADADADAD

    mysql死锁是如何产生的[ mysql数据库 ]

    mysql数据库 时间:2024-12-03 10:27:28

    作者:文/会员上传

    简介:

    mysql是一种关系型数据库管理系统,使用的 SQL 语言是用于访问数据库的最常用标准化语言。在mysql的使用过程中,会有死锁的情况发生,这产生的原因是什么呢?MySQL的三种锁:表级锁:开

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    mysql是一种关系型数据库管理系统,使用的 SQL 语言是用于访问数据库的最常用标准化语言。在mysql的使用过程中,会有死锁的情况发生,这产生的原因是什么呢?

    MySQL的三种锁:

    表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

    行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。

    页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般

    算法:

    next KeyLocks锁,同时锁住记录(数据),并且锁住记录前面的Gap

    Gap锁,不锁记录,仅仅记录前面的Gap

    Recordlock锁(锁数据,不锁Gap)

    所以其实 Next-KeyLocks=Gap锁+ Recordlock锁

    什么情况下会造成死锁

    所谓死锁<DeadLock>: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

    表级锁不会产生死锁.所以解决死锁主要还是针对于最常用的InnoDB.

    死锁的关键在于:两个(或以上)的Session加锁的顺序不一致。

    那么对应的解决死锁问题的关键就是:让不同的session加锁有次序。

    mysql死锁是如何产生的.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysql死锁