自增锁也会导致死锁

自增锁

一个表一个自增列

auto_increment pk

select max(auto_inc_col)from t for update

在事务提交前释放

其他所在事务提交时才释放

think about

insert select

create table z(a int auto_increment,b int,primary key(a))

begin;

insert into z values(null,1)         begin

insert into z values(null,2) 可以插入

如果之前插入的记录被回滚掉 自增值不会回滚

insert 。。。on duplicate key update遇到重复值会自动更新

innodb_autoinc_lock_mode= 0 1 2

0:传统模式 在sql语句执行完之后自增锁才释放

1 默认参数

simple inserts 并发:在sql语句没执行完之前就可以释放

bulk insert 传统方式

2

所有自增都以并发方式

同一sql语句自增可能不连续

row-based binlog

如果把值设置为2,需要设置为row-based binlog

myisadm与innodb的自增

innodb的自增列必须被定义为一个key

create table t(a int auto_increment,b int,key(b,a))engine=innodb; 必须被定义为key的第一个列(为什么) select max(auto_inc_col)from t for update

自增不会持久化

auto_increment_increment

auto_increment_offset

二阶段锁

读加锁 写加锁 serilizeable

非锁定的一致性读

如果是sr  右边不能执行

事务:

a:原子性 redo

c:一致性 undo

i:隔离性 lock

d:持久性 redo&undo

flat transaction:begin commit

flat gransaction with savepoints:

chained transaction:

mysql 原子自增_mysql自增锁_33相关推荐

  1. mysql 主键 自增_MySQL自增主键详解

    一.自增值保存在哪儿? 不同的引擎对于自增值的保存策略不同 1.MyISAM引擎的自增值保存在数据文件中 2.InnoDB引擎的自增值,在MySQL5.7及之前的版本,自增值保存在内存里,并没有持久化 ...

  2. mysql的增_MySQL之增_insert-replace

    MySQL增删改查之增insert.replace 一.INSERT语句 带有values子句的insert语句,用于数据的增加 语法: INSERT [INTO] tbl_name[(col_nam ...

  3. mysql insert 自增_MySQL自增列插入0值的解决方案

    在将数据库从MSSQL迁移到MySQL的过程中,基于业务逻辑的要求,需要在MySQL的自增列插入0值.在MSSQL中是这样完成的: string sql;sql = " set identi ...

  4. mysql qt自增_mysql自增设置

    MySQL设置自增字段的相关语句: alter table album change ALBUM_ID ALBUM_ID bigint not null auto_increment; alter t ...

  5. php mysql 字段自增_MySQL自增字段取值的详细介绍(附代码)

    本篇文章给大家带来的内容是关于MySQL自增字段取值的详细介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1 前言 本文来自回答思否网友的一个问题,这个网友新建了一张表 ...

  6. mysql设置id起点_mysql自增ID起始值修改方法

    在MysqL中很多朋友都认为字段为AUTO_INCREMENT类型自增ID值是无法修改,其实这样理解是错误的,下面介绍MysqL自增ID的起始值修改与设置方法. 通常的设置自增字段的方法:创建表格时添 ...

  7. mysql 自增_mysql自增

    表结构 CREATE TABLE `salary` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL DEFAULT ...

  8. mysql批量设置自增_mysql自增id怎么批量插入数据

    使用mysql数据库--增 插入一条数据 首先,还是先解释一下如何使用数据库,按照上面的方法就可以连接数据库了.这里要解释两件事情. 1.执行sql语句返回的reCount是什么? 这个recount ...

  9. mysql 删除一个约束条件_MySQL 字段增删改查 和 约束条件

    一.字段操作 1.添加字段 (add) alter table add 字段名 数据类型; desc ; 2.修改字段数据类型 (modify) alter table modify ; 3.字段重命 ...

最新文章

  1. poj1144(割点)
  2. [cocos2d-x]cocos2d和cocos2d-x的一些通用性
  3. python数据科学手册_小白入门Python数据科学
  4. Warning: post-commit hook failed (exit code 255) with no output.
  5. mysql多列索引用处_MySQL索引使用说明(单列索引和多列索引)
  6. numpy 或者是 pandas 矩阵循环
  7. 【python数据挖掘课程】十三.WordCloud词云配置过程及词频分析
  8. Python爬虫神器pyppeteer
  9. 关于人行acs对账不及时_记工记账新方法,不用本子不用笔,一个手机全搞定
  10. struts2 + ajax 用户名登录验证(struts2+spring+ibatis)
  11. 在你的 Android App 中使用 Flutter | Google开发者大会
  12. C#弹出窗体、C#导出Excel、C#数据展示框、C#弹出框
  13. vs2010启动越来越慢解决方法
  14. 【运筹学】表上作业法 ( 运输规划问题最优解分析 | 退化与非退化 )
  15. c语言程序设计环境软件下载,c语言编程软件
  16. SAP MM采购仓储入门视频教程——适合新手入门学习
  17. 关于EN信号通过电阻分压的问题
  18. 为什么你该培养多维度竞争力?
  19. unity3d学习笔记-动画(2.控制动画与Animator Controller)
  20. 环形电流计算公式_环形电流的磁场分布 怎么计算

热门文章

  1. 混合高斯模型(GMM)
  2. java计算机毕业设计库存管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  3. 谷晟阳:人生的三次觉醒:见自己,见天地,见众生。
  4. 日语动词活用之连用形
  5. 32位微控制器 (MCU)STM32G081KBU6 128KB 闪存 32QFN
  6. 无为一中2021高考成绩查询,2021年无为市高考状元名单资料,今年无为市高考状元多少分...
  7. 使用reCAPTCHA实现验证码
  8. 短信验证码登录的实现流程
  9. 华为 鸿蒙 腾讯,高通都已支持华为鸿蒙,小米、OV却无动于衷
  10. 程序员的巅峰真的年薪百万吗?来看看IT行业薪酬大比拼