栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Mysql 数据库的隔离级别】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Mysql 数据库的隔离级别】

数据库的隔离级别 1.事务

事务只是一个改变,是一些操作的集合;用专业的术语来讲,他就是一个执行单元;事务本身不包含这4个特性,我们需要通过某些手段,尽可能的让这个执行单元满足这个4个特性,那么我们就可能称之他为事务,或者说是一个正确的事务。

2.四特性

原子性 :满足原子操作单元,对数据的操作,要么全部执行,要么全部失败一致性 :事务开始和完成,数据必须保持一致隔离性 :事务之间都是相互独立的,中间状态对外不可见持久性 :数据的修改是永久性的 3.隔离级别 3.1并发情况下事务引发的问题

一般情况下,多个单元操作并发执行,会出现以下问题

脏读:A事务还未提交,B事务就读到来A事务的结果(破坏隔离级别)不可重复读:A事务在本次事务中,对自己未操作过的数据,进行了多次读取,结果出现了不一致或者记录不存在的情况。(破坏一致性,update和delete)幻读:A事务在本次事务中,对自己未操作过的数据,进行多次读取,第一次读取时,记录不存在,第二次读取时,记录存在了。(破坏一致性, insert) 3.2 解决(指定标准)

为了权衡 【隔离】和【并发】的矛盾,ISO定义来四个事务的隔离级别,每个级别隔离程度不同,允许出现的副作用也不一样。

读未提交(read-uncommitted):最低级别,只能保证持久性 (感觉好像没啥用吧)已提交读(read-committed) :语句级别的可重复读(repeateable-read) :事务级别的串行读(seriallzable):最高级别,事务与事务完全串化执行,毫无并发可言,性能极低
3.3 实现[innodb]

锁机制 :组织其他事务对数据进行操作,各个隔离级别主要体现在读取数据时加的锁和释放时机

读未提交(read-uncommitted) RU:事务读取的时候不加锁已提交读(read-committed) RC:事务读取的时候加行级共享锁(读到才加锁),一但读完,立刻释放锁(并不是等待事务结束才释放)可重复读(repeateable-read) RR:事务读取时加行级锁,直到事务结束才会释放串行读(seriallzable) SZ:事务读取时加表级共享锁,知道事务结束时,才会释放

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785287.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号