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

  • 相关阅读:
    gentoo 网络配置
    gentoo 安装
    渗透流程与相应的工具使用
    Web 安全工具篇:Burp Suite 使用指南
    kali&BT5下利用nmap对mysql等数据库渗透与爆破
    一个网站的渗透测试思路,流程
    网站渗透测试原理及详细过程
    mysql渗透过程
    AWVS介绍
    Windows下Python3.6.2+Django-1.11.5+httpd-2.4.27-win64-VC14部署网站
  • 原文地址:https://www.cnblogs.com/wangyongbin/p/3729640.html
Copyright © 2011-2022 走看看