美文网首页
MySql数据库的事务与锁

MySql数据库的事务与锁

作者: 念念咚咚锵 | 来源:发表于2018-05-05 12:11 被阅读0次

什么是事务?

事务就是transaction

我们可以用四个方面(ACID)去描述他!
A: atomicity 原子性 (一系列操作要么都完成,要么就都不完成)
C: consistency 一致性 (处理相同的字段,获取同一个数值)
I: isolation 隔离性 (从应用层的角度是隔离,底层的处理是通过锁机制)
D: durability 持久性 (防止数据丢失,数据如何存储相关)

InnoDB 的锁

InnoDB是支持到行锁,但是也必须了解在进行行锁之前,会对表进行加锁的

Shared and Exclusive Locks (共享锁和独享锁)

他们都是粒度,都是在行级别的锁。
共享锁:主要是在读取一行数据的时候,会使用,当其他用户读此行的时候,他们都会获取这个共享锁。
读享锁: 可以理解为排他锁,主要在行数据更新或者删除的时候,会使用的锁。

如果当前行数据被exclusive lock 了,那么必须等待其释放,才能获取共享锁。

Intention Locks (目标锁)

粒度为表级别,分为两种类型:IS(intention shared lock) IX(intention exclusive lock)
目标锁是在行数据操作之前会进行获取。

Record Locks (记录锁)

主要用来对index序列进行加锁,防止对当前数据的插入,更新和删除

Gap Locks (间隙锁)

间隙锁可以理解为是为一段索引区间建立的锁。

Next-Key Locks

结合记录锁和间隙锁,对索引操作的锁。

Insert Intention Locks (插入目标锁)

AUTO-INC Locks (自增锁)

这个自增锁是表级别的锁,主要用于对某个字段进行自增(auto increment)所使用的锁.

Predicate Locks for Spatial Indexes

如何保证数据的一致性consistency呢?

  1. 使用锁 2. InnoDB multiversion concurrency control (MVCC)

相关文章

  • MySQL锁简介

    备注:测试数据库版本为MySQL 8.0 这个blog我们来聊聊MySQL 事务 一.MySQL锁概述 数据库锁定...

  • MySQL数据库高级(七)——事务和锁

    MySQL数据库高级(七)——事务和锁 一、事务简介 1、事务简介 事务(Transaction) 是指作为单个逻...

  • 高性能Mysql笔记

    一、Mysql架构与历史 1、架构图 2、锁 表锁 行级锁 3、事务 死锁 Mysql中的事务 1

  • 收藏-MySQL

    # MySQL的并发控制与加锁分析# MySQL的四种事务隔离级别# mysql共享锁与排他锁

  • 20171110 MySQL进阶(一)

    数据库基本概念回顾数据库的并发控制:锁MySQL的事务设置MySQL的索引设置MySQL的用户和权限管理 一、数据...

  • 浅析mysql的锁

    目录:1.锁的定义与分类(表、行、页)2.锁相关的语句(查看锁)3.mysql事务4.乐观锁和悲观锁5.数据库死锁...

  • 2019-03-18文章精选

    1.深入理解 MySQL ——锁、事务与并发控制 各种锁、事务与并发,写得很详细。 2.剖析分布式锁 redis部...

  • MySql数据库的事务与锁

    什么是事务? 事务就是transaction 我们可以用四个方面(ACID)去描述他!A: atomicity ...

  • MySQL数据库的锁与事务

    并发控制 为什么需要锁呢,这时因为应用程序往往是面向多个用户的,当多个用户同时对同一条数据进行操作时,就会产生并发...

  • 深入理解MySQL索引

    前言 当提到MySQL数据库的时候,我们的脑海会经常想起几个关键字:索引、事务、数据库锁等,索引是MySQL的灵魂...

网友评论

      本文标题:MySql数据库的事务与锁

      本文链接:https://www.haomeiwen.com/subject/itvsrftx.html