zoukankan      html  css  js  c++  java
  • TPL事务

    TPL事务

    概念

    事务是数据库中一系列操作数据的动作集合!事务有着高度的一致性!

    要么全部执行,要么不执行,是一个不可分割的工作单位。

    事务的类型

    1. ​ 自动事务

      MySQL默认就是自动提交事务!每句SQL语句前后都会嵌套事务!

      自动开启!自动提交!报错自动回滚!

    2. ​ 显式事务(自定义事务)

      方案1:手动开启

      start transaction
      DMLSQL语句序列			 
      commit/rollback 
      

      方案2:取消自动事务

      set  autocommit = off / 1; 关闭自动提交 本次窗口有效 		
      DMLSQL语句序列		  
      commit/rollback
      

    注意:rollback会回滚开启事务之前的状态!commit以后SQL语句会真正的改变数据!

    事务的作用

    1)为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
    2)当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。

    事务的特性

    • 原子性(Atomicity):指处于同一个事务中的多条语句是不可分割的。
    • 一致性(Consistency)
    • :事务必须使数据库从一个一致性状态变换到另外一个一致性状态。比如转账,转账前两个账户余额之和为2k,转账之后也应该是2K。
    • 隔离性(Isolation):指多线程环境下,一个线程中的事务不能被其他线程中的事务打扰
    • 持久性(Dutability):事务一旦提交,就应该被永久保存起来。

    如果不考虑事务的隔离性,会出现以下问题:

    • 脏读:指一个线程中的事务读取到了另外一个线程中未提交的数据。
    • 不可重复读:指一个线程中的事务读取到了另外一个线程中提交的update的数据。
    • 幻读(虚读):指一个线程中的事务读取到了另外一个线程中提交的insert的数据。

    事务的隔离级别

    1. READ UNCOMMITTED(未提交读): 赃读. 重复读、虚读都有可能发生。
    2. READ COMMITTED(已提交读): 避免赃读。重复读、虚读有可能发生。(oracle默认的)
    3. REPEATABLE READ(可重复读):避免赃读、重复读。虚读有可能发生。(mysql默认)
    4. SERIALIZABLE(可串行化): 避免赃读、不可重复读、虚读。

    级别越高,数据越安全,但性能越低!!

    查看隔离级别

    -- 模糊查询
    show variables like '%isolation%';
    -- 隔离名查询 MYSQL-80版本的名字与之前的名字不同,之前的名字为@@tx_isolation
    select @@transaction_isolation;
    

    修改隔离级别

    set transaction isolation level 四个级别;
    

    DCL权限管理

    创建用户

    CREATE USER `zhangsan` identified BY '123';
    

    用户赋权

    grant 权限(all/select..) on 库名.表名(*全部) to '用户名'
    

    查看权限

    show grants for '账号'
    

    用户权限撤销

    revoke  权限 on 库.表 from ‘用户名’;  	
    

    删除用户

    drop user '用户名'
    

    数据备份和恢复

    数据备份

    mysqldump -u用户名 -p密码 要备份的数据库>磁盘位置.sql
    

    数据恢复

    mysql -u用户名 -p密码 要恢复的数据库<磁盘位置 .sql
    
  • 相关阅读:
    java学习疑问
    HTTP method GET is not supported by this URL
    详解ListView分页(带图片)显示用法案例
    MySQL 字段数据类型/长度
    getRequestDispatcher()与sendRedirect()的区别
    Codeforces Round #754 (Div. 2) D,E 题解
    CCPC2019 Harbin Site B.Binary Numbers
    2020 EC Final D. City Brain
    [USACO15JAN]Grass Cownoisseur G
    CF1295F Good Contest
  • 原文地址:https://www.cnblogs.com/MonkeySun/p/13374850.html
Copyright © 2011-2022 走看看