MySQL事务处理与并发控制

概述文章有点长哟 , 需要耐心看哟
数据库系统是现代商业世界有序稳定运行的基石 , 数据和数据承载的交易事件的结果不会因系统故障而损伤 。数据库系统的核心技术是事务处理机制 , 也是有别于其他系统的关键特质 。事务处理机制以其ACID特性保证了在各种环境下的数据一致性 。同时:数据库系统又是多用户处理系统 , 为了提高数据库的性能 , 数据库常常会并发执行多个事务 , 事务的并发执行 , 虽然提高了性能 , 但是却带来了其他的数据一致性问题 , 因此 , 合适的并发控制技术是必须的 , 本文主要介绍MySQL的事务处理和并发控制技术 。
1. 数据库事务系统概述数据库管理系统是位于用户与操作系统之间的一层数据管理软件 , 数据库的事务处理机制是数据库的基石 , 那么为什么需要事务处理机制呢?
1.1 为什么需要事务处理机制我们先看一个问题:账户A转账50元到账户B , 过程如下:

MySQL事务处理与并发控制

文章插图
账户转账示例
事务处理机制就是要通过实现事务的ACID特性来保证用户对数据的操作是安全的一致的 , 不管在什么环境下 , 都必须是安全的一致的 。事务概念为应用程序开发人员提供了一个非常好的抽象 , 同时保证了数据的安全一致性 。
1.2 什么是事务呢?具有哪些特性前面我们通过例子简单的认识了事务处理的必要性 , 那么事务到底是什么呢?它的ACID特性该如何理解呢?
事务是数据库管理系统执行过程中的一个逻辑单位 , 由一个有限的数据库操作序列构成 , 事务是无法被分割的操作 , 事务必须作为一个完整的单元成功或失败 , 不可能存在部分完成的事务 。
事务具有如下特性:
  • 原子性(Atomicity):事务作为一个整体被执行 , 包含在其中的对数据库的操作要么全部被执行 , 要么都不执行 。
  • 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态 。一致状态的含义是数据库中的数据应满足完整性约束 。
  • 隔离性(Isolation):多个事务并发执行时 , 一个事务的执行不应影响其他事务的执行 。
  • 持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中 。
那么该如何理解这四个特性呢?