• 事务的特性和隔离级别


    1、事务的特性:(面试题)

    l 原子性:处于同一个事务中的多条语句,要么全都成功,要么全都不成成功。

    l 一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。比如转账:转账前a+b=2000,转账后a+b=2000

    l 隔离性:多线程并发时,一个事务不能被其他事务所干扰。

    l 持久性:数据应该被永久性的保存起来。(硬盘,而不是内存)

    ACID

    2、事务的隔离性专题

    如果不考虑事务的隔离性,会导致以下不正确的问题:

    a、脏读:指一个事务读到了另外一个事务中未提交的数据

    b、不可重复读:指一个事务读到了另外一个事务update后(事务提交了)的数据

    c、虚读:指一个事务读到了另外一个事务insert的数据

    3、演示操作:

    3.1数据库控制隔离级别相关的语句(必须用在事务之中):

    数据库有四个隔离级别:

    READ UNCOMMITTED:脏读、不可重复读、虚读都有可能发生。

    READ COMMITTED:防止脏读发生;不可重复读、虚读都有可能发生。

    REPEATABLE READ:MySQL默认级别)防止脏读、不可重复读;虚读有可能发生。

    SERIALIZABLE:防止脏读、不可重复读、虚读的发生

    特点:从上到下,隔离级别越高,数据越安全,但是效率越低

    select @@tx_isolation; 查看当前数据库的隔离级别

    set transaction  isolation  level 四个级别之一;更改当前事务的隔离级别

  • 相关阅读:
    ES6解构之复杂数据
    QQ音乐API-借他人之力实现我的音乐盒
    canvas 简易的加载进度条
    File System 之本地文件系统
    File System 定额(配额查询)
    window.btoa 和 window.atob
    Web App、Hybrid App与Native App
    函数节流和函数防抖
    javascript瀑布流
    protobuf的使用(netty传输多种对象类型)
  • 原文地址:https://www.cnblogs.com/baijin05/p/5073383.html
Copyright © 2020-2023  润新知