首页 > 数据库 >MySQL学习(16)事务隔离级别

MySQL学习(16)事务隔离级别

时间:2023-11-13 23:57:08浏览次数:34  
标签:事务 读取 16 READ 可能 MySQL 级别 隔离

事务隔离级别

前言

一次事务的执行,就是一次状态的转换。事务执行后,必须从一个一致性状态转换到下一个一致性状态,如果事务发生中止,也要回滚到最初的一致性状态。

什么是事务隔离级别

系统通过一些方法,使得并发执行的事务按照一定的顺序单独执行,或者最终执行的效果和单独执行一样。也就是说让事务“隔离”地执行。这就是事务的隔离性。

为了舍弃一部分隔离性来换取一部分性能,设立的不同的级别。隔离级别越低,就越可能发生越严重的问题。

事务并发执行中的一致性问题

  • 脏写

一个事务修改了另一个未提交事务修改过的数据。

  • 脏读

一个事务读取了另一个未提交事务修改过的数据。

严格意义指的是修改数据的事务发生回滚,使得读取到的数据不能保证一致性。

  • 不可重复读

一个事务修改了另一个未提交事务读取的数据。

严格意义指的是一个事务读取一个数据后,这个数据被另一个事务修改,再一次读取这个事务时,两次读取到的值不一致。

  • 幻读

一个事务先根据某些搜索条件查询出来一些记录,在该事务未提交时,另一个事务写入了一些符合该搜索条件的记录。

严格意义指的是一个事务先读取服务搜索条件的一些记录,然后另一个事务写入了符合搜索条件的记录,再读取符合搜索条件的记录时,两次读取的记录不一致。

SQL中的隔离级别

  • READ UNCOMMITTED:未提交读
  • READ COMMITTED:已提交读
  • REPEATABLE READ:可重复读
  • SERIALIZABLE:可串行化
隔离级别 脏读 不可重复读 幻读
READ UNCOMMITTED 可能 可能 可能
READ UNCOMMITTED 不可能 可能 可能
REPEATABLE READ 不可能 不可能 可能
SERIALIZABLE 不可能 不可能 不可能

MySQL的默认隔离级别是REPEATABLE READ

阅读学习《MySQL是怎样运行的》小孩子4919

标签:事务,读取,16,READ,可能,MySQL,级别,隔离
From: https://www.cnblogs.com/haleyeung/p/17830628.html

相关文章

  • MySQL常用的字符串函数
    MySQL常用的字符串函数有:   1,CONCAT(str1,str2,…):将多个字符串连接在一起。selectCONCAT('aa','bb')//返回aabb  2,UPPER(str):将字符串转换为大写。selectUPPER('aabb')//返回大写的AABB   3,LOWER(str):将字符串转换为小写。selectLOWER(......
  • 题解 AT_codefestival_2016_final_f【Road of the King】
    注意到当前移动到的位置并不重要,重要的是经过的点数和\(1\)所在强连通分量大小,因此把它们放进状态里:设\(f_{i,j,k}\)表示进行\(i\)次移动,经过了\(j\)个不同的点,此时\(1\)所在的强连通分量大小为\(k\)的方案数。考察下一次移动到的点的情况:没有访问过:共有\(n-j\)......
  • MySQL中常见的数学函数
    1.函数用于求绝对值abs() 2.函数返回小于或等于x的最大整数 floor(x) 3.函数是返回0-1的随机数 rand() 4.函数用于返回圆周率 PI() 5.函数返回x保留到小数点后y位的值truncate(x,y) 6.函数对x四舍五入,round(x,y)返回x保留到y位,截断时进行四舍五入处理 round(......
  • mysql函数(三)之常见数学函数
    1、format(x,y)函数功能是将一个数字x,保留y位小数,并且整数部分用逗号分隔千分位,小数部分进行四舍五入,使用示例如下: 2、abs(x);sqrt(x);mod(x,y)①、abs();求一个数的绝对值;absolute②、sqrt();求一个数的平方根。sqrt是sqruar(平方,矩形),root(根)的缩写。③、mod(x,y)......
  • 如何在 Python 中执行 MySQL 结果限制和分页查询
    PythonMySQL限制结果限制结果数量示例1:获取您自己的Python服务器选择"customers"表中的前5条记录:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="您的用户名",password="您的密码",database="我的数据库"......
  • 如何在 Python 中执行 MySQL 结果限制和分页查询
    PythonMySQL限制结果限制结果数量示例1:获取您自己的Python服务器选择"customers"表中的前5条记录:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="您的用户名",password="您的密码",database="我的数据库"......
  • mysql使用记录
    为数据库配置白名单IP报错与解决方案:解决mysql8报错:ERROR1410(42000):YouarenotallowedtocreateauserwithGRANT其中:updateusersethost='%'whereuser='test';的test是用户名,本次使用时替换为root最后要flushprivileges;刷新一下权限......
  • mysql 阅读
    覆盖索引coveringindex:https://blog.csdn.net/cckevincyh/article/details/119655516B+tree https://www.xiaolincoding.com/mysql/index/page.html#innodb-%E6%98%AF%E5%A6%82%E4%BD%95%E5%AD%98%E5%82%A8%E6%95%B0%E6%8D%AE%E7%9A%84......
  • mysql函数(一)之常见的日期函数汇总
    mysql函数(一)之常见的日期函数汇总在数据库操作中,日期和时间的处理是非常重要的一部分。MySQL提供了许多内置的日期和时间函数,可以帮助我们更方便地处理这些数据。本文将介绍一些常见的日期函数,希望对大家有所帮助。一、mysql日期函数ADDDATE(d,n);计算起始日期d加上n天......
  • mysql函数(三)之常见的数学函数
    mysql函数(三)之常见的数学函数一、mysql常见数学函数MySQL提供了众多用于处理数字的数学函数,这些函数能够对整数、浮点数等进行一系列操作。以下是一些常用的MySQL数学函数:ABS(x);返回x的绝对值SELECTABS(-1)--返回1 AVG(price);返回一个表达式的平均值,price是一个......