首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL 主键自增注意事项

为了解决这个问题,我们就需要选择适合自己的 innodb_autoinc_lock_mode。...2.2 innodb_autoinc_lock_mode 我们可以通过控制 innodb_autoinc_lock_mode 变量的值,来控制在主键自增的时候,MySQL 锁的处理思路。...从上面的介绍中小伙伴们可以看到,实际上第三种,也就是 innodb_autoinc_lock_mode 取值为 2 的情况下,并发效率是最强的,那么我们是不是就应该设置 innodb_autoinc_lock_mode...2.3 实践 接下来我们来通过一个简单的 SQL 来和小伙伴们演示一下 innodb_autoinc_lock_mode 不同取值对应不同结果的情况。...小结 好啦,这就是关于主键自增的一个小小知识点,小伙伴们一定要根据实际情况来为 innodb_autoinc_lock_mode 属性取一个合适的值。

10410

浅析MySQL存储引擎序列属性

The innodb_autoinc_lock_mode configuration option controls the algorithm used for auto-increment locking...这个参数,它用于控制获取自增值的加锁方式 innodb_autoinc_lock_mode,它有0、1、2三个值。...下面详细说明一下关于innodb_autoinc_lock_mode属性 (1) innodb_autoinc_lock_mode=0 代表传统模式,也就是说,在对有自增属性的字段插入记录时,会持续持有一个表级别的自增锁...(3) innodb_autoinc_lock_mode=2 代表交错模式。这个模式下放弃了自增表锁,产生的值会不连续。不过这是性能最高的模式,多条插入语句可以并发执行。...也即是在RBR模式下,innodb_autoinc_lock_mode=2是安全的,其他情况还是建议设置为1. 墨天轮原文链接:https://www.modb.pro/db/29406

1.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Innodb锁机制探究(一)---自增锁(2)

    参数innodb_autoinc_lock_mode的参数来控制自增长的模式,它的取值可以是0,1,2,代表的含义上面的文章中有讲过。这里不再赘述。...InnoDB DEFAULT CHARSET=utf8 row in set (0.00 sec) mysql:yeyztest ::>>show variables like '%innodb_autoinc_lock_mode...-------+-------+ | Variable_name | Value | +--------------------------+-------+ | innodb_autoinc_lock_mode...它的本质其实是在参数innodb_autoinc_lock_mode上,这个参数设置为1的时候,相当于将这种auto_inc lock弱化为了一个更轻量级的互斥自增长机制去实现,官方称之为mutex。...2、对于常规的insert操作,可以使用参数innodb_autoinc_lock_mode来控制是否使用表级别的锁,如果该参数是0,则使用表级别的auto_inc 锁,如果该参数是1,则使用互斥自增长机制实现主键的自增

    1.7K20

    浅谈MySQL自增锁

    函数可以获得最后一个插入的数字 select last_insert_id(); 五、自增锁 如果存在自增字段,MySQL会维护一个自增锁,和自增锁相关的一个参数为(5.1.22版本之后加入) innodb_autoinc_lock_mode...六、自增的过程 第一种,插入空值的时候 当innodb_autoinc_lock_mode=0时 1、申请AUTO_INC锁 2、得到当前的AUTO_INCREMENT值n,并加1 3、执行插入操作...如果失败流程结束 3、如果成功,申请AUTO_INC锁 4、调用set_max函数,修改AUTO_INCREMENT 5、语句结束,释放AUTO_INC锁 七、存在的问题 1、复制的问题 在innodb_autoinc_lock_mode...也就是说在RBR模式下,innodb_autoinc_lock_mode=2是安全的,其他情况还是建议设置为1. 2、load data的问题 当使用load data语句的时候,就算innodb_autoinc_lock_mode

    5K30

    Mysql配置文件 innodb引擎(上)

    查询: 在线配置: 配置文件:innodb_log_group_home_dir = /Data/data innodb_autoinc_lock_mode 参考 这个参数控制着在向有auto_increment...consecutive(innodb_autoinc_lock_mode=1) 模式: 1、这一模式下去simple insert 做了优化,由于simple insert一次性插入值的个数可以立马得到确定...它保证了基于语句复制的安全) 2、这一模式也是mysql的默认模式,这个模式的好处是auto_inc锁不要一直保持到语句的结束,只要语句得到了相应的值后就可以提前释放锁 interleaved(innodb_autoinc_lock_mode...由于现在mysql已经推荐把二进制的格式设置成row,所以在binlog_format不是statement的情况下最好是innodb_autoinc_lock_mode=2 这样可以得到更好的性能。...查询: 在线配置: 配置文件:innodb_autoinc_lock_mode = 2

    3K20
    领券