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

     

     

  • 相关阅读:
    高斯消元
    丑数
    扩展欧几里得算法与线性同余方程
    数论-求逆元
    数论-快速幂-快速乘
    宋逸轩长难句 2
    宋逸轩长难句 1
    c语言 文件
    c语言程序结构
    c语言结构类型
  • 原文地址:https://www.cnblogs.com/hzxy-blog/p/11258850.html
Copyright © 2011-2022 走看看