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

           

           

  • 相关阅读:
    HBase with MapReduce (MultiTable Read)
    HBase with MapReduce (SummaryToFile)
    HBase with MapReduce (Summary)
    HBase with MapReduce (Read and Write)
    HBase with MapReduce (Only Read)
    Hbase中的BloomFilter(布隆过滤器)
    HBase的快照技术
    How To Use Hbase Bulk Loading
    Cloudera-Manager修改集群的IP
    Java中的HashSet和TreeSet
  • 原文地址:https://www.cnblogs.com/zengkefu/p/5698087.html
Copyright © 2011-2022 走看看