zoukankan      html  css  js  c++  java
  • 自增锁

    自增锁,在提交前释放,并发插入高

    s,x等锁,在COMMIT扣释放,并发插入需要等待

    不能回滚到前面的值

    insert -like:

            simple-insert:插入前就能确定插入行数语句
    
            bulk insert :插入前不确定插入行数的语句 replace ... select
    
            mixed-mode inserts:insert into t1(c1,c2) values(1,"a"),(null,"b"),(4,"c"),(null,"d")
    
                                                insert ...  on duplicate key update:自身扩展  (任何KEY 重复,就执行 )

     innodb_autoinc_lock_mode:

    0:传统方式 ,
    
    simple insert:传统方式
    
    bulk insert :传统方式
    
    对于 INSERT ... SELECT ...   些时其他事务不能插,分配的ID是连续得 ,其他事务不能插入
    
    SQL执行完才释放自增锁
    
     
    
    1.
    
    simple insert 并发
    
    bulk insert   传统方式
    
     
    
    2.
    
    所有自增都以并发方式
    
    同一SQL语句自增可能不连接
    
    row-based binlog

    工作模式1: 

    工作原理:
    
    BULK INSERT:
    
    ACQUIRE AI
    
    INSERT ..SELECT :如果执行时间长,自增锁持有时间就长,不确定插入的记录数,只能等插入完 才自增,其他事务等待插入
    
    AI=AI+N
    
    RELEASE AI
    
     
    
    SIMPLE INSERT : 无SQL 语句执行等待
    
    ACQURE AI
    
    AI=AI+N
    
    RELESE AI

    工作模式为 2时的工作原理:

    FOR I=AI;I++//对BULK INSERT  也能并发插入,对单线插入变差,无益,对多线程插入是益的,自增值可能不连续的
    
    {
    
    ACQUIRE AI LOCK
    
    INSERT ONE REC
    
    AI=Ai+1
    
    RELEAS AI LOCK
    
    }

    自增列的创建:

    对于联合索引,自增列必须放在第一个列
    
    create table jjj ( a int auto_increment,b int ,key( a,b));      // KEY(b,a)

    自增锁:

       AUTO_INCREMENT PK 不能持久化,速度快

       当重起MYSQL 服务器重新计算值:

               SELECT  MAX(AUTO_INC_COL) FROM XX 基于索引查找,而不是全表扫

    自增锁相关参数:

      auto_increment_increment:步长值

      auto_increment_offset:初始值

    每个节点产生全局唯一自增值设置

       auto_increment_offset =1                          auto_increment_offset=2

       auto_increment_increment=10                     auto_increment_increment=10

           

           

  • 相关阅读:
    QML控件设置style样式
    QML:ListElement: cannot use script for property value
    内存更换乌龙事件
    服务器的寿命到底有多长
    这些年渠道管理系统上发生的那些事
    IT囧事之误删测试环境的生产库
    旁观一个软件产品的终结
    一根网线引发的血案
    论代码规范命名的重要性
    服务器故障之内存损坏
  • 原文地址:https://www.cnblogs.com/zengkefu/p/5698087.html
Copyright © 2011-2022 走看看