博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自增锁
阅读量:4937 次
发布时间:2019-06-11

本文共 1306 字,大约阅读时间需要 4 分钟。

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

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 AIINSERT ..SELECT :如果执行时间长,自增锁持有时间就长,不确定插入的记录数,只能等插入完 才自增,其他事务等待插入AI=AI+NRELEASE AI SIMPLE INSERT : 无SQL 语句执行等待ACQURE AIAI=AI+NRELESE AI

 

 

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

FOR I=AI;I++;   //对BULK INSERT  也能并发插入,对单线插入变差,无益,对多线程插入是益的,自增值可能不连续的{ACQUIRE AI LOCKINSERT ONE RECAI=Ai+1RELEAS 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

       

       

转载于:https://www.cnblogs.com/zengkefu/p/5698087.html

你可能感兴趣的文章
[Google Android] RelativeLayout 布局底部的EditText会被弹出的键盘遮挡
查看>>
(随用随总结)Linux下面的特殊权限&不同的文件类型
查看>>
Failed to start component [StandardEngine[Catalina].
查看>>
[VBA]批量新建指定名称的工作表
查看>>
委托与事件的关系
查看>>
固定资产管理系统 概要说明书说明书
查看>>
类的绑定方法
查看>>
2016-5-25授课(3)
查看>>
新增加的元素 相关操作获取不到
查看>>
Zabbix 3.0编译安装
查看>>
json介绍及简单示例
查看>>
h.264 率失真优化
查看>>
【转】拓扑排序入门
查看>>
Spring中Bean的命名问题(id和name区别)及ref和idref之间的区别
查看>>
How to install 64-bit Google Chrome 28+ on 64-bit RHEL/CentOS 6 or 7
查看>>
搭建LNAMP环境(三)- 源码安装Apache2.4
查看>>
linux --> fork()详解
查看>>
Spring注解 开发
查看>>
#!/bin/bash(转)
查看>>
BZOJ4589 Hard Nim(博弈+FWT)
查看>>