事务隔离级别下本质

本文深入解析了数据库事务的四种隔离级别:读未提交、读提交、可重复读和可序列化,详细阐述了每种级别的内部锁机制及可能产生的读现象,如脏读、不可重复读和幻读。

事务隔离级别本质

在数据库管理系统中,事务保证了一个操作序列可以全部执行或全部不执行(原子性),从一个状态转变到另外一个状态(一致性)。由于事务满足持久性,所以一旦事务被提交之后,数据就能够被持久化下来,又因为事务是满足隔离性的,所以,当多个事务同时处理同一个数据的时候,多个事务之间是互不影响的,所以在多个事务并发操作的过程中,如果控制不好隔离级别,就有可能产生脏读,不可重复读或者幻读等读现象。

读未提交

  • 隔离级别最低,一个事务可以读到另一个事务未提交的数据
内部锁情况
  • 事务在读数据时候未对数据加锁
  • 事务在修改数据的时候只对数据增加行级共享锁
现象
  • 事务1读取某行记录,事务2也可以对这行记录进行读取,更新(因为事务1并未对数据增加任何锁)
  • 事务2对该行记录进行更新时,事务1在此读取该记录,能够读到事务2对该记录的修改版本(因为事务2只增加了共享读锁,事务1可以再增加共享读锁读取数据)
  • 事务1更新某行记录时,事务2不能对这行记录做更新,直到事务1结束(因为事务1对数据增加了共享读锁,事务2不能增加排他锁进行数据的修改)

读提交

  • 一个事务修改数据过程中,如果事务还没提交,其他事务不能读该数据
内部锁情况
  • 事务对当前被读取的数据加行级共享锁(当读到时才加锁),一旦读完该行,立即释放该行级共享锁
  • 事务在更新某数据的瞬间,必须对其加行级排他锁,直到事务结束才释放
现象
  • 事务1在读取某行记录的整个过程,事务2都可以对该行进行读取(因为事务一对该行记录增加行级共享锁的情况下,事务2同样可以对该数据增加共享锁来读数据)
  • 事务1读取某行的瞬间,事务2不能修改该行,但是,事务1读取完该行数据,事务2便可以对该行数据进行修改(因为事务一在读取一瞬间会对数据增加共享锁,任何事务都不能加排他锁,但是事务一旦读完就会释放行级共享锁)
  • 事务1更新某行记录,事务2不能对这行数据做更新,因为更新的时候会加上排他锁,直到事务结束才会释放锁。所以在事务1没有提交之前,事务2都不能对数据增加共享锁进行数据的读取。所以读提交能够解决脏读问题

可重复读

内部锁情况
  • 事务在读取某数据的瞬间,必须先对其加行级共享锁,直到事务结束才释放
  • 事务在更新某数据的时候,必须先对其加行级排他锁,直到事务结束才释放
现象
  • 事务1在读取某行记录的整个过程,事务2都可以对该行记录进行读取(因为事务1对该行记录增加行级共享锁的情况下,事务2同样可以对该行数据增加共享锁来读数据)
  • 事务1在读取某行记录,事务2不能修改该行数据(因为事务1读取数据会对数据增加共享锁,直到事务提交才会释放,所以整个过程不允许其他事务对该行数据增加排他锁,解决了不可重复读的情况)
  • 事务1更新某行记录时,事务2不能对这行数据做更新,直到事务1结束(因为更新的时候会增加排他锁,直到事务结束才会释放)
  • 会出现幻读情况,mysql已使用MVCC解决了该问题

可序列化

  • 可序列化是最高隔离级别,能够解决脏读,不可重复读,幻读问题
内部锁情况
  • 事务在读取数据时,必须先对其加表级共享锁,直到事务结束才释放
  • 事务在更新数据时,必须先对其加表级排他锁,直到事务结束才释放
现象
  • 事务1正在读取A表中的记录时,则事务2也能够读取A表,但不能对A表作更新,增加,删除,直到事务1结束(因为事务1的关系对表增加了表级共享锁,其他事务只能增加共享锁读取数据,不能进行其他操作)
  • 事务1正在更新A表中的记录,则事务2不能读取A表的任何记录,更不能对A增删改,直到事务1结束(事务1对表增加了表级排他锁,其他事务不能对表增加任何锁)

转载于:https://www.cnblogs.com/develop-SZT/p/10391718.html

多角色体系 支持管理员、商家、消费者三种角色,权限分级管控: 管理员:负责平台整体配置、用户审核、数据监控等全局操作。 商家:管理店铺信息、发布商品、处理订单、回复评价等。 消费者:浏览商品、加入购物车、下单支付、评价商品等。 实现用户注册(手机号 / 邮箱验证)、登录(支持密码 / 验证码 / 第三方登录)、个人信息管理(头像、收货地址、密码修改)。 权限精细化控制 商家仅能管理自家店铺及商品,消费者仅能查看和购买商品,管理员拥有全平台数据访问权限。 二、商品管理功能 商品信息维护 商家可发布商品:填写名称、分类(如服饰、电子产品)、子类别(如手机、笔记本)、规格(尺寸、颜色、型号)、价格、库存、详情描述(图文)、物流信息(运费、发货地)等。 支持商品上下架、库存调整、信息编辑,系统自动记录商品状态变更日志。 商品分类与搜索 按多级分类展示商品(如 “数码产品→手机→智能手机”),支持自定义分类体系。 提供智能搜索功能:按关键词(名称、品牌)搜索,支持模糊匹配和搜索联想;结合用户浏览历史对搜索结果排序(优先展示高相关度商品)。 商品推荐 基于用户浏览、收藏、购买记录,推荐相似商品(如 “浏览过该商品的用户还买了…”)。 首页展示热门商品(销量 TOP10)、新品上架、限时折扣等推荐列表。 三、订单与交易管理 购物车与下单 消费者可将商品加入购物车,支持修改数量、选择规格、移除商品,系统自动计算总价(含运费、折扣)。 下单流程:确认收货地址→选择支付方式(在线支付、货到付款)→提交订单→系统生成唯一订单号。 订单处理流程 订单状态跟踪:待支付→已支付→商家发货→物流运输→消费者收货→订单完成,各状态变更实时通知用户。 商家端功能:查看新订单提醒、确认发货(填写物流单号)、处理退款申请(需审核理由)。 消费者端功能:查看订单详情、追踪物流、申请退款 / 退货、确认收货。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值