zoukankan      html  css  js  c++  java
  • 马哥学习笔记十六——MySQL进阶之事务和隔离级别

    连接管理器:  接受请求  创建线程  认证用户  建立安全连接

    并发控制:  

      mbox:MDA

      C/S: 100   10分钟:    

        多版本并发控制: MVCC

    锁:  

      读锁:共享锁  

      写锁:独占锁   

      LOCK TABLES tb_name {READ|WRITE};   

      UNLOCK TABLES


    锁粒度:从大到小,MySQL服务器仅支持表级锁,行锁需要由存储引擎完成;
      表锁:
      页锁:(block)
      行锁:

    事务:  RDBMS: ACID (原子性,一致性,隔离性,持久性)

      MyISAM:  不支持事务

      InnoDB:

    隔离性:
      隔离级别:
        READ UNCOMMITTED:读未提交
        READ COMMITTED:读提交
        REPATABLE READ:可重读
        SERIALIZABLE:可串行

    事务:CPU, I/O
      RDBMS,
        ACID:
          Automicity:原子性,事务所引起的数据库操作,要么都完成,要么都不执行;
          Consistency:一致性(隔离状态下)
          Isolation: 隔离性
            事务调度:事务之间影响最小
            MVCC:多版本并发控制
          Durability:一旦事务成功完成,系统必须保证任何故障都不会引起事务表示出不一致性;
            1、事务提交之前就已经写出数据至持久性存储;
            2、结合事务日志完成;
              事务日志:顺序IO
              数据文件:随机IO

      事务的状态:
        活动的:active
        部分提交的:最后一条语句执行后
        失败的:提交了但未能完成
        中止的:未提交
        提交的:

    多事务同时执行:彼此之间互不影响的方式进行并行
      事务之间交互:
        通过数据集

    事务:并发执行  

      1、提高吞吐量和资源利用率  

      2、减少等待时间

    事务调度:  

      可恢复调度:任何2个事务的交叉执行都不会导致另一个事务的状态改变  

      无级联调度:

    并发控制依赖的技术手段:
      锁
      时间戳
      多版本和快照隔离

    START TANSACTION:启动
      SQL
      SQL
    COMMIT: 提交
    ROLLBACK: 回滚

    如果没有明确启动事务:  

      autocommit:能实现自动提交,每一个操作都直接提交;

      建议:明确使用事务,并且关闭自动提交;
    保存点:SAVEPOINT sid
    回滚至保存点:ROLLBACK TO sid

  • 相关阅读:
    现代软件工程 第一章 概论 第4题——邓琨
    现代软件工程 第一章 概论 第9题——邓琨
    现代软件工程 第一章 概论 第7题——张星星
    现代软件工程 第一章 概论 第5题——韩婧
    hdu 5821 Ball 贪心(多校)
    hdu 1074 Doing Homework 状压dp
    hdu 1074 Doing Homework 状压dp
    hdu 1069 Monkey and Banana LIS变形
    最长上升子序列的初步学习
    hdu 1024 Max Sum Plus Plus(m段最大子列和)
  • 原文地址:https://www.cnblogs.com/wangyongbin/p/3729640.html
Copyright © 2011-2022 走看看