zoukankan      html  css  js  c++  java
  • innodb引擎对自增字段(auto_increment)的处理

    原文地址:https://dev.mysql.com/doc/refman/5.7/en/innodb-auto-increment-handling.html#innodb-auto-increment-lock-modes

    在涉及自增字段的插入时,innodb会上锁,上锁的类型由参数 innodb_autoinc_lock_mode 决定, 参数的不同取值对不同的insert类型加不同的锁。

    针对innodb_autoinc_lock_mode insert类型分为4大类:

    1. insert-like

    insert, insert...select, replace, replace...select, load data...

    2.simple inserts

    insert, replace, 不包含子查询的插入,特征是插入数量可以预知,但是不包括 insert... on duplicate key update, 因为这个语句使得插入数量变得不可预知

    3.Bulk inserts

    insert...select, replace...select, load data...

    插入数量不可以预知,innodb的处理到具体的行时才分配auto_increment字段的值

    4.Mixed-mode inserts

    INSERT INTO t1 (c1,c2) VALUES (1,'a'), (NULL,'b'), (5,'c'), (NULL,'d'); 数量预知,但是用户为auto_increment字段指定了部分而不是全部的值

    insert...on duplicate key update也属于此模式

    第1类包含了所有其他3类。

    不同的insert类型在不同的innodb_autoinc_lock_mode取值下的加锁情况如下表:

      innodb_autoinc_lock_mode=0(“traditional”)
    insert-like 表级AUTO-INC锁,插入语句结束锁释放(非事物结束),基于语句的复制安全,无法并发,自增字段连续
    simple inserts 表级AUTO-INC锁,插入语句结束锁释放(非事物结束),基于语句的复制安全,无法并发,自增字段连续
    Bulk inserts 表级AUTO-INC锁,插入语句结束锁释放(非事物结束),基于语句的复制安全,无法并发,自增字段连续
    Mixed-mode inserts 表级AUTO-INC锁,插入语句结束锁释放(非事物结束),基于语句的复制安全,无法并发,自增字段连续
      innodb_autoinc_lock_mode=1( consecutive”),默认值
    insert-like  
    simple inserts

    在分配值时计算出要使用的自增字段的值,使用一个轻量级的互斥锁(mutex lock), 其他的insert不用等到语句结束才能执行;

    但是如果这个insert正在等待一个持有表级AUTO-INC锁的insert结束,那它自己也会如同加一把表级AUTO-INC锁

    自增字段连续;

    基于语句的复制安全

    Bulk inserts

    表级AUTO-INC锁,插入语句结束锁释放(非事物结束),

    对于insert.A..select...B, replace.A..select...B

    如果表A 和表B不是同一个,在A表选出的第一条记录加共享锁后,然后在B表加表级AUTO-INC锁;

    如果表A 和表B是同一个,在所有select到的行上加共享锁后,再在B表加表级AUTO-INC锁;

    自增字段连续

    基于语句的复制安全

    Mixed-mode inserts

    基于语句的复制安全

  • 相关阅读:
    天天生鲜项目需求分析——基于Django框架的天天生鲜电商网站项目系列博客(一)
    预训练模型专题_GPT2_模型代码学习笔记
    Logistic模型原理详解以及Python项目实现
    【人生苦短,我学 Python】基础篇——基本语句(Day5)
    “TensorFlow 开发者出道计划”全攻略,玩转社区看这里!
    程序员常用的六大技术博客类
    [慕课笔记]Node入口文件分析和目录初始化
    如何在面试中脱颖而出?
    程序媛,坚持这几个好习惯让你越来越美
    2017前端精品面试文章总结
  • 原文地址:https://www.cnblogs.com/janey/p/7412675.html
Copyright © 2011-2022 走看看