innodb_autoinc_lock_mode中有3种模式,0,1,2,数据库默认是1的情况下,每次使用insert into … on duplicate key update 的时候都会把简单自增id增加,不管是发生了insert还是update

innodb_autoinc_lock_mode参数详解

tradition(innodb_autoinc_lock_mode=0) 模式:

1、它提供了一个向后兼容的能力

2、在这一模式下,所有的insert语句(“insert like”) 都要在语句开始的时候得到一个表级的auto_inc锁,在语句结束的时候才释放这把锁,注意呀,这里说的是语句级而不是事务级的,一个事务可能包涵有一个或多个语句。

3、它能保证值分配的可预见性,与连续性,可重复性,这个也就保证了insert语句在复制到slave的时候还能生成和master那边一样的值(它保证了基于语句复制的安全)。

4、由于在这种模式下auto_inc锁一直要保持到语句的结束,所以这个就影响到了并发的插入。

consecutive(innodb_autoinc_lock_mode=1) 模式:

1、这一模式下去simple insert 做了优化,由于simple insert一次性插入值的个数可以立马得到确定,所以mysql可以一次生成几个连续的值,用于这个insert语句;总的来说这个对复制也是安全的(它保证了基于语句复制的安全)

2、这一模式也是mysql的默认模式,这个模式的好处是auto_inc锁不要一直保持到语句的结束,只要语句得到了相应的值后就可以提前释放锁

interleaved(innodb_autoinc_lock_mode=2) 模式:

1、由于这个模式下已经没有了auto_inc锁,所以这个模式下的性能是最好的;但是它也有一个问题,就是对于同一个语句来说它所得到的auto_incremant值可能不是连续的。

MySQL主键自增长报duplicate_MySQL使用on duplicate key update引起主键不连续自增相关推荐

  1. MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)

    本文章来给大家提供三种在mysql中避免重复插入记录方法,主要是讲到了ignore,Replace,ON DUPLICATE KEY UPDATE三种方法,各位同学可尝试参考. 案一:使用ignore ...

  2. [数据库]---mysql 插入sql之 INSERT INTO和INSERT IGNORE INTO和REPLACE INTO和ON DUPLICATE KEY UPDATE比较应用

    mysql插入一条数据方式有四种,接下来逐个说明验证: 前提: 有一个表,作为本次测试: CREATE TABLE `zs_test` (`id` int(11) NOT NULL AUTO_INCR ...

  3. mysql批量更新,批量插入之replace语句/insert into... on duplicate key update语句

    mysql批量更新/插入数据有以下方法,使用这些方法批量插入数据/更新数据的时候就不用在代码层次增加判断数据是否已存在的逻辑了. 1:replace语句 2: insert into... on du ...

  4. mysql delayed_mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )

    mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE ) 更新时间:2010年04月14日 13:46:04   作者: DELAYED 做 ...

  5. MySQL使用on duplicate key update时导致主键不连续自增

    在做数据统计的时候,我们经常会用到mysql的on duplicate key update语法来自动更新数据,比如 最近项目上需要实现这么一个功能:统计每个人每个软件的使用时长,客户端发过来消息,如 ...

  6. mysql 复合主键更新_MySQL复合主键下ON DUPLICATE KEY UPDATE语句失效问题

    问题的起因,假设有一张表,里面保存了交易订单,每张订单有唯一的ID,有最后更新时间,还有数据,详情如下: 针对这张表会做追加及更新的操作,具体来说就是如果订单不存在就INSERT一条新的,如果已存在就 ...

  7. mysql duplicate id_mysql 使用ON DUPLICATE KEY UPDATE 时导致的自增主键id无限增大问题

    mysql 版本:5.7 python版本:3.7 问题描述:mysql表A中数据有几十条,设置了一个自增 1 的id作为主键,在程序运行一段时间后发现表中最后一条数据的id已经是几百万了 表中所有数 ...

  8. Mysql on duplicate key update用法及优缺点

    在实际应用中,经常碰到导入数据的功能,当导入的数据不存在时则进行添加,有修改时则进行更新, 在刚碰到的时候,一般思路是将其实现分为两块,分别是判断增加,判断更新,后来发现在mysql中有ON DUPL ...

  9. mysql insert into on_MySQL之INSERT INTO ON DUPLICATE KEY UPDATE用法详解 | 夕辞

    MySQL数据库使用中如果主键或唯一键冲突,会报错,因此我们会用到insert into on duplicate key update语法,但是该语法具体怎么用以及返回什么值,今天就来讨论下. 首先 ...

最新文章

  1. 一个老产品的心路历程
  2. 【跃迁之路】【707天】程序员高效学习方法论探索系列(实验阶段464-2019.1.28)...
  3. 删除目录下大量小文件和清空大文件
  4. 经典机器学习算法系列3-k近邻算法
  5. 现代密码学2.2、2.3--由“一次一密”引出具有完美安全的密码方案共同缺点
  6. graph driver-device mapper-04libdevmapper基本操作
  7. Editplus For Python[转]
  8. java 虚拟机类加载 及内存结构
  9. LeetCode 567. 字符串的排列 (滑动窗口哈希表)
  10. ES6学习笔记(四)-数值扩展
  11. php循环,die/exit脚本执行控制,文件载入及错误控制
  12. 浅析JBPM工作流引擎
  13. 台湾自由行可行性研究报告
  14. 浅分享一下zzulioj刷题总结
  15. 百度网盘下载速度太慢,百度网盘下载慢怎么解决
  16. 弹性网卡支持私网多IP
  17. 二期开发立项申请书,已经提交,等待批准!
  18. 开关电源个人总结(电感部分与滤波电容)
  19. PaaS平台应用的原则
  20. 导出数据库表信息生成Word文档(数据字典)

热门文章

  1. MySQL 异常:这一篇就够了,MySQL 抛出异常的几种常见解决方式小结
  2. MapReduce综合学习含Wordcount案例
  3. PythonPyqt5项目开发完成后如何使用pyinstaller打包——以Pycharm编辑器为例(目前为止最正确的版本,成功打包日期为2020.11.26)
  4. core文件如何分析
  5. c语言 枚举类型 uint32_浅谈C语言枚举类型 | 附自创用法分享
  6. 大物实验总结模板_期中总结大会amp;期末动员大会
  7. java厨房_JAVA环境搭建,厨房安装图文教程!
  8. linux18配置静态ip,ubuntu18配置静态IP地址
  9. java编写系统登录界面_java 登陆界面怎么写,连接数据库后
  10. python快递费用计算_[Python]简单用Python写个查询快递的程序最后附源代码