往mysql中插入 自增id不连续(曾经的坑)
来源:互联网 发布:java 兼职 编辑:程序博客网 时间:2024/05/22 00:43
merphix(CSDN UID:u014567183) 给博主提供了莫大的帮助
问题描述
事情是这样的,博主用 Mybatis 往 mysql 做批量插入,结果发现特定的 SQL 语句导致 自增int型主键不连续,多方求证便有了这篇博文。
还原问题
建表语句
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
批量插入方案一
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
批量插入方案二
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
结果发现方案一会导致自增id不连续,二方案二id是连续的
举例:id为自增主键
先清空数据表
上面提供的批量插入sql语句一次插入2条记录
第一次运行 第一条id =1 ,第二条id=2
第二次运行 第三条id =4 ,第四条id=5
第三次运行 第五条id =7 ,第六条id=8
问题实质
和 MySQL 的 innodb 数据库引擎相关,据说是 MyISAM 引擎 不会有这种问题
innodb 自增列 锁机制简述
解决方案
- 换掉 innodb 数据库引擎
- 用上提到的方案二SQL
- 配置 innodb_autoinc_lock_mode 参数
MySQL 官方 innodb_autoinc_lock_mode 文档
innodb_autoinc_lock_mode 类型简述
innodb_autoinc_lock_mode 配置方法
转载自http://blog.csdn.net/u014430366/article/details/70267601?utm_source=itdadao&utm_medium=referral
阅读全文
0 0
- 往mysql中插入 自增id不连续(曾经的坑)
- 往mysql中插入 自增id不连续(曾经的坑)
- MySQL 中 AUTO_INCREMENT 的“坑”--id不连续
- MySQL中如何获取下一条插入的自增ID 或 刚刚插入的id
- 得到mysql插入的自增id
- MyBatis插入记录获取自增的ID(MySQL)
- innodb_autoinc_lock_mode 下自增id不连续的原因
- 解决自增id不连续的问题
- Mysql实现数据的不重复写入(insert if not exists)以及新问题:ID自增不连续的解答
- Mysql实现数据的不重复写入(insert if not exists)以及新问题:ID自增不连续的解答
- Mysql实现数据的不重复写入(insert if not exists)以及新问题:ID自增不连续的解答
- Mysql实现数据的不重复写入(insert if not exists)以及新问题:ID自增不连续的解答
- MySQL中自增主键不连续之解决方案。
- mysql插入数据,获取最新插入的ID(自增列)
- mysql插入数据,获取最新插入的ID(自增列)
- Mysql中获取刚插入的自增id的三种方法
- Mysql中获取新插入的自增id的三种方法
- mysql数据库删除数据后,数据自增id断点不连续
- hdu1627 Krypton Factor(注意后缀+dfs)
- MySQL学习总结4:多表操作
- Ruby on Rails基于ruby2.4.2的hello world
- css实现文本超出部分显示省略号
- 回调机制简述
- 往mysql中插入 自增id不连续(曾经的坑)
- 自定义一个具有倒角的三角形标签(RoundLabelTextView)
- 数据预处理:PCA原理推导
- 公众号使用指南
- SVN的使用
- Ubuntu redis安装与使用
- hadoop2.9安装指南
- 设计模式的艺术之道--装饰模式
- Qt工程名称和文件名称的修改