mysql—事务(代码片段)

超霸霸 超霸霸     2023-01-14     255

关键词:

事务

一、事务的基本介绍

  • 概念:如果一个包含多个步骤的业务操作被事务管理,那么这些操作要么同时成功,要么同时失败
  • 操作:
    1. 开启事务:start transaction
    2. 回滚:rollback
    3. 提交:commit
    4. MySQL数据库中事务默认自动提交
      • 自动提交
        1. mysql是自动提交
        2. 一条DML(增删改)语句会自动提交一次事务
      • 手动提交
        1. Oracle数据库默认是手动提交
        2. 需要先开启事务再提交
      • 修改事务的默认提交方式
        1. 查看事务的默认提交方式:select @@autocommit; -- 1代表自动提交,0代表手动提交
        2. 修改默认方式:set @@autocommit=0;

二、事务的四大特征

  1. 原子性:事务是不可分割的最小单位,要么同时成功,要么同时失败
  2. 持久性:当事务提交或回滚后,数据库会持久化的保存数据
  3. 隔离性:多个事务之间相互独立
  4. 一致性:事务操作前后,数据总量不变

三、事务的隔离级别(了解)

  • 概念:多个事务之间是隔离的,相互独立的。但是如果多个事务操作同一批数据就会引发一些问题,设置不同的隔离级别就能解决这些问题
  • 存在问题:
    1. 脏读:一个事务读取到另一个事务中没有提交的数据
    2. 不可重复读(虚读):在同一个事务中,两次读取到的数据不一样
    3. 幻读:一个事务操作(DML)数据表中所有记录,另一个事务添加了一条数据,则第一个事务查询不到自动的修改
  • 隔离级别:
    1. read uncommitted:读未提交
      • 产生的问题:脏读、不可重复读、幻读
    2. read committed:读已提交
      • 产生的问题:不可重复读、幻读
    3. repeatable read:可重复读
      • 产生的问题:幻读
    4. serializable: 串行化
      • 可以解决所有的问题
  • 隔离级别从小到大安全性越来越高,但是效率越来越低
  • 数据库查询隔离级别:select @@tx_isolation;
  • 数据库设置隔离级别:set global transaction isolation level 隔离级别;

四、DCL

  • SQL分类
    1. DDL:操作数据库和表
    2. DML:增删改表中数据
    3. DQL:查询表中数据
    4. DCL:管理用户,授权
  • DBA:数据库管理员
  • DCL:管理用户,授权
    1. 管理用户
      • 添加用户:CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
      • 删除用户:DROP USER '用户名'@'主机名';
      • 修改用户密码
        • UPDATE USER SET PASSWORD = PASSWORD('新密码') WHERE USER = '用户名';
        • SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');
        • mysql中忘记了root用户的密码
          1. cmd使用管理员运行–>net stop mysql 停止mysql服务
          2. 使用无验证的方式启动mysql服务:mysql --skip-grant-tables
          3. 打开新的cmd窗口,直接输入mysql命令,敲回车,就可以登录成功
          4. use mysql;
          5. update user set password = password('新密码') where user = 'root';
          6. 关闭两个窗口
          7. 打开任务管理器,手动结束mysqld.exe的进程
          8. 启动mysql服务
          9. 使用新密码登录
      • 查询用户
        1. 切换到mysql数据库:USE mysql;
        2. 查询user表:SELECT * FROM USER;
        3. 通配符:%表示可以在任意主机使用用户登录
    2. 权限管理
      • 查询权限:SHOW GRANTS FOR '用户名'@'主机名';
      • 授予权限:GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
        GRANT ALL ON *.* TO '用户名'@'主机名';
      • 撤销权限:REVOKE 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

mysql事务(代码片段)

文章目录二、MySQL事务2.1、事务的概念2.2、事务的ACID特点①原子性(Atomicity)②一致性(Consistency)③隔离性(Isolation)ⅰ查询全局事务隔离级别:ⅱ查询会话事务隔离级别ⅲ设置全局事务隔离级别ⅳ... 查看详情

mysql的事务详解(代码片段)

...ySQL✨一句短话:难在坚持,贵在坚持,成在坚持!文章目录一.事务的业务场景二.事务的使用三.事务的特性(ACID)1.原子性(Atomicity)2.一致性(Consistency)3.持久性(Durability)4.隔离性(Isolation)四.事务并发异常1.脏读2.不可重复读3.幻读四.MySQL的... 查看详情

mysql事务隔离与spring(代码片段)

Spring学习事务的时候看到很多只读事务和事务隔离和事务传播和事务挂起,为了更好的理解学习了mysql这块的知识。本文用的SQL命令#------设置事务隔离登记-----#读已提交setsessiontransactionisolationlevelreadcommitted;#读未提交setsessiont... 查看详情

mysql的事务和引擎,注意细品(代码片段)

mysql事务和引擎一、MySQL事务(一)、MySQL事务的概念(二)、事务的ACID特点1、ACID特点2、数据不一致产生的结果:(三)、事务的隔离1、MySQL事物隔离级别1.1查询全局事务隔离级别1.2查询会话事务隔离级别1.3设... 查看详情

深入剖析mysql事务和spring事务(代码片段)

本文分享一些关于Mysql如何解决多事务并发的问题和Spring源码是怎么控制事务以及一些事务失效的场景。分享内容Mysql事务隔离机制锁机制MVCC多版本并发控制隔离机制Spring事务应用和源码分析事务失效问题一、Mysql事务数据库的... 查看详情

mysql事务隔离(代码片段)

阅读目录事务的介绍隔离级别1READUNCOMMITTED(未提交读)2READCOMMITTED(提交读)3REPEATABLEREAD(可重复读)SERIALIZABLE(可串行化)事务隔离的实现事务启动的方式事务的介绍事务就是一组原子性的sql查询,或者说是一个独立的工作单元。简... 查看详情

[mysql]事务acid详解(代码片段)

...历代表过去,能力代表现在,学习能力代表未来! 目录 1. 事务的概念2.事务的特性3.事务控制语法4.事务并发异常5.事务隔离级别1. 事务的概念事务指逻辑上的一组操作,组成这组操作的各个单元,除非全部正确执 查看详情

mysql—事务(代码片段)

事务一、事务的基本介绍概念:如果一个包含多个步骤的业务操作被事务管理,那么这些操作要么同时成功,要么同时失败操作:开启事务:starttransaction回滚:rollback提交:commitMySQL数据库中事务默认... 查看详情

mysql—事务(代码片段)

事务一、事务的基本介绍概念:如果一个包含多个步骤的业务操作被事务管理,那么这些操作要么同时成功,要么同时失败操作:开启事务:starttransaction回滚:rollback提交:commitMySQL数据库中事务默认... 查看详情

mysql:管理mysql事务(代码片段)

...户端,真正的MySQL服务器程序是mysqld,在后台运行.数据库事务具有ACID特性,用来保证多条SQL的全部执行。五、MySQL通过mysql命令行登录MySQLClient的可执行程序是mysql,MySQLServer的可执行程序是mysqld。MySQLClient和MySQLServer的关系如下:... 查看详情

重新整理mysql基础篇—————mysql事务[三](代码片段)

前言简单整理一下事务。正文事务有四大特性:1.原子性(atomicity)一个事务必须被视为一个不可分割的最小单元。2.一致性(consistency)数据库总是从一个一致性的状态转换到另一个一致性的状态。很多人对事务的一致性和原子性可能... 查看详情

mysql(十七)——事务(代码片段)

17.事务17.1什么是事务17.2与事务相关的语句17.3事务机制的存在价值17.4事务的执行过程17.5提交事务和回滚事务17.6事务的4个特性17.7事务的隔离性17.8验证各种隔离级别17.事务17.1什么是事务  一个事务其实就是一个完整的业务逻... 查看详情

mysql事务(代码片段)

@[TOC]Mysql事务简介事务四大特征(ACID)推荐:https://blog.csdn.net/lianghecai52171314/article/details/102782804原子性:事务是最小单位,不可再分,例如:update…insert…delete…一致性:所有的DML语句操作,必须 查看详情

mysql事务(代码片段)

@[TOC]Mysql事务简介事务四大特征(ACID)推荐:https://blog.csdn.net/lianghecai52171314/article/details/102782804原子性:事务是最小单位,不可再分,例如:update…insert…delete…一致性:所有的DML语句操作,必须 查看详情

mysql事务测试(代码片段)

setautocommit=0;--1开启自动提交事务0关闭自动提交事务1.读未提交:没有提交的事务修改数据也能读到,会产生->脏读setsessiontransactionisolationlevelreaduncommitted;(如果一个事务未提交然后回滚,另一个事务读取回未... 查看详情

mysql-09-笔记(代码片段)

事务事务TRANSACTION1.事务的概念2.事务的数据准备3.未管理事务演示4.管理事务演示5.事务的提交方式6.事务的四大特征(ACID)7.事务的隔离级别8.事务隔离级别演示9.隔离级别总结10.事务的总结事务TRANSACTION1.事务的概念一条或多条SQL语... 查看详情

mysql事务的实现原理(代码片段)

《深入理解分布式事务》第二章MySQL事务的实现原理文章目录《深入理解分布式事务》第二章MySQL事务的实现原理一、RedoLog1.RedoLog基本概念2.RedoLog基本原理3.RedoLog刷盘规则4.RedoLog写入机制5.RedoLog的LSN机制6.RedoLog相关参数二、UndoLog... 查看详情

mysql----事务transaction(代码片段)

事务初识事务事务提交方式自动提交手动提交事务操作方式及测试操作测试事务隔离级别初步理解(同时对于一致性的理解)隔离级别相关操作读未提交【ReadUncommitted】读提交【ReadCommitted】可重复读【RepeatableRead】串行化【serializab... 查看详情