zoukankan      html  css  js  c++  java
  • 事务管理

    任务九:事务管理
    9.1.1 事务的概念
    事务就是针对数据库的一组操作,它可以由一条或多条SQL语句组成,同一个事务的操作具备同步的特点,事务中的语句要么都执行,要么都不执行
    1、开启事务的语句,具体如下:
             START TRANSACTION;
    2、提交事务的语句,具体如下
             COMMIT;
    :在事务中没有提交事务就退出了数据库,当前的操作会被自动取消,事务中的操作都是手动提交的,在操作完事务时,一定要使用COMMIT语句提交事务,否则事务操作会失败。
    3、回滚事务的语句,具体如下:
             ROLLBACK;
    :ROLLBACK语句只能针对未提交的事务执行回滚操作,已提交的事务是不能回滚的
    事务有很严格的定义,它必须同时满足四个特性,针对这四个特性的讲解,具体如下:
    (1)、原子性(Atomicity)
    原子性是指一个事务必须被视为一个不可分割的最小工作单元,只有事务中所有的数据库操作都执行成功,才算整个事务执行成功,事务中如果有任何一个SQL语句执行失败,已经执行成功的SQL语句也必须撤销,数据库的状态退回到执行事务前的状态。
    (2)、一致性(Consistency)
    一致性是指事务将数据库从一种状态转变为下一种一致的状态。例如,在表中有一个字段为姓名,具有唯一约束,即姓名不能重复,如果一个事务对姓名进行了修改,使姓名变得不唯一了,这就破坏了事务的一致性要求,如果事务中的某个动作失败了,系统可以自动撤销事务,返回初始化的状态。
    (3)、隔离性(Isolation)
    隔离性还可以称为并发控制、可串行化、锁等,当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
    (4)、持久性(Durability)
    事务一旦提交,其所做的修改就会永久保存到数据库中,即使数据库发生故障也不应该对其有任何影响。需要注意的是,事务的持久性不能做到100%的持久,只能从事务本身的角度来保证永久性,而一些外部原因导致数据库发生故障,如硬盘损坏,那么所有提交的数据可能都会丢失。
    注:在数据库中事务中的提交操作需要用户进行确认,当用户确认提交后,事务中的操作才会执行成功。
    9.1.2 事务的隔离级别
    数据库是多线程并发访问的,所以很容易出现多个线程同时开启事务的情况,这样就会出现脏读、重复读以及幻读的情况,为了避免这种情况的发生,就需要为事务设置隔离级别。
    在MySQL中,事务有四种隔离级别,接下来将针对这四种隔离级别进行详细地讲解。
    (1)READ UNCOMMITTED(读未提交)
    (2)READ COMMITTED(读提交)
    (3)REPEATABLE READ(可重复读)
    (4)SERIALIZABLE(可串行化)

  • 相关阅读:
    Hive与Hadoop的交互流程
    Hadoop Webhdfs
    Hadoop HDFS的Java操作
    Hadoop JobHistory
    使用Eclipse构建Maven项目环境搭建
    Shell脚本简介 — 持续更新
    Hadoop基础 — Hadoop Shell
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
  • 原文地址:https://www.cnblogs.com/zmy2001/p/12142717.html
Copyright © 2011-2022 走看看