zoukankan      html  css  js  c++  java
  • MYSQL 事务与锁

    Mysql 参考手册

    https://dev.mysql.com/doc/refman/5.7/en/load-data.html  

    导读:

             什么是数据库事务?

             事务并发会带来哪些问题?

             事务隔离性与锁的关系?

             行锁原理与算法详解?

       什么是数据库事务?

           事务:

                    数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;事务是一组不可再分割的操作集合(工作逻辑单元)。

           事务场景:

                   典型事务场景:(转账)

                   update user_account set balance =balance -100 where user=1;

        update user_account set balance =balance +100 where user=1;

          哪些引擎支持事务?

                 MYSAM 不支持事务       innodb 支持事务

          事务:数据库默认情况是自动提交事务

                   例如:update student set sname= '' where id = 1;

          手动提交事务的两种方式:

               方式一:

                        begin;

                            update student set sname= '' where id = 1;

                       commit;

              方式二:

        show variables like 'autocommit';

          set session autocommit = on  //on 自动提交   off 关闭自动提交

             update student set sname= '' where id = 1;

        commit;

     结束事务的两种方式:rollback;commit;

       事务的四大特性:ACRD

         原子性 :

        一致性:

        隔离性:

        持久性:

    事务并发会带来哪些问题?

      事务并发的三大问题:

        脏读:一个事务读取到其他事务未提交的修改

        不可重复读:一个事务读取到其他事务已提交的更新删除

     

        幻读:一个事务读取到其他事务已提交的新增

     

    事务并发的三大问题其实都是数据库读一致性问题,必须有数据库提供一定的事务隔离机制来解决。 

    事务隔离级别

    Mysql可以通过下诉API操作事务隔离级别:

    查看系统隔离级别:
    select @@global.tx_isolation;
    查看当前会话隔离级别
    select @@tx_isolation;
    设置当前会话隔离级别
    SET session TRANSACTION ISOLATION LEVEL serializable;
    设置全局系统隔离级别
    SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

     

    myisam 表锁 innodb 表锁行锁

     

     

     意向锁相当于flag,不用查询表中是否有行锁。节省时间,提供效率

     

    主键索引是特殊的唯一索引。主键不能未空,唯一可以有一个null

     

     

  • 相关阅读:
    杭电 Problem
    杭电Problem 5053 the sum of cube 【数学公式】
    杭电 Problem 2089 不要62 【打表】
    杭电 Problem 4548 美素数【打表】
    杭电 Problem 2008 分拆素数和 【打表】
    杭电 Problem 1722 Cake 【gcd】
    杭电 Problem 2187 悼念512汶川大地震遇难同胞——老人是真饿了【贪心】
    杭电Problem 1872 稳定排序
    杭电 Problem 1753 大明A+B
    东北林业大 564 汉诺塔
  • 原文地址:https://www.cnblogs.com/hzxy-blog/p/11258850.html
Copyright © 2011-2022 走看看