首页 > 数据库 >mysql(8)事务

mysql(8)事务

时间:2022-09-20 19:33:07浏览次数:89  
标签:事务 隔离 提交 mysql 操作 数据

事务简介

事务是一组操作的集和,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销请求,即这些操作要么同时成功,要么同时失败。

mysql默认执行一条语句自动隐式地提交事务。

事务操作

关闭自动提交的方式

手动开启事务的方式

事务的四大特性(ACID)

原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。
一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态。
隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。
持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。 

并发事务问题

 脏读:一个事务读到另外一个事务还没有提交的数据。 

 不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读。(期间有其他事务UPDATE这条记录并提交)。 

 幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了"幻影"。 (期间有其他事务INSERT并提交)。

事务隔离级别

设置隔离级别以解决并发问题,mysql默认隔离级别是可重复读

隔离级别越高,安全性越高,性能越低。

 

标签:事务,隔离,提交,mysql,操作,数据
From: https://www.cnblogs.com/gcr277/p/16711674.html

相关文章

  • MySQL5.7读写分离
    读写分离关闭防火墙systemctlstopfirewalldsetenforce0Amoeba服务器环境安装安装jdkyuminstalljava安装完成后查看版本java-version修改配置文件vi/etc/......
  • Dapper使用MySql.Data偶发执行异常(Net Framework)
    System.Number.StringToNumber(string,System.Globalization.NumberStyles,refSystem.Number.NumberBuffer,System.Globalization.NumberFormatInfo,bool)S......
  • oracle导出csv文件后导入mysql
    场景:oracle数据库中有与mysql同名表,需要将oracle表数据导入mysql,需要手工操作工具:navicatpremium解决方案:1、使用plsql工具从oracle导出csv文件2、使用navicat工具......
  • MySQL-面试题总结
    1.为什么InnoDB存储引擎选择B+Tree索引结构。(1)思路,为什么不采用二叉树和红黑树?普通二叉树,顺序插入,形成链表,大大影响查询效率。红黑树本质上也是二叉树,大数据量,树的......
  • mysql安装my.cnf配置
    进入my.cnf文件//乱码修改设置编码character_set_server=utf8mb4//编码collation-server=utf8mb4_general_ci//连接数据库执行操作init_connect='SETNAMES......
  • Mysql
    Prerequisite几百年前就安装了的东西,现在重新回顾一下Mysql彻底卸载参考博客:重装MySQL打开服务,关闭关于Mysql的全部服务卸载mysqlserver(并删除残留痕迹)管理......
  • mysql存图片,存二进制文件还是保存图片的相对路径
    转载自: 【转】mysql保存图片技术决定:保存二进制文件还是只保存图片相对路径,图片放在硬盘上面?-Eillot-博客园(cnblogs.com) 最近遇到上面这个问题,一开始我......
  • mysql中nvl_浅谈Mysql中类似于nvl()函数的ifnull()函数
    IFNULL(expr1,expr2)如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。mysql>selectIFNULL(1,0);->......
  • mysql(7)多表查询
    内连接 (查询交集)隐式内连接显示内连接INNERJOINON注意如果为表起别名,就不能直接通过表名设定字段。外连接 左外连接LEFTOUTERJOIN...ON左表全部记录......
  • MySQL 添加用户并授予只能查询权限
    1.创建用户createuser'userName'@'%'identifiedby'123456';用户名为userName,密码是123456的用户(userName,123456可指定)2.授予权限grantselectonmysql.*to'use......