栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MySQL INSERT…ON重复更新-向自动增量添加1

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL INSERT…ON重复更新-向自动增量添加1

INSERT ... ON DUPLICATE KEY UPDATE
为了InnoDB的
AUTO_INCREMENT
处理目的,它被称为“混合模式插入”
。基本上,混合模式插入是已知所需值的 最大 数量的插入
AUTO_INCREMENT
,但 实际上所需的 数量不是。

混合模式插入默认情况下会特别处理,如MySQL
docs中所述

…对于“混合模式插入” …
InnoDB将分配比要插入的行数更多的自动增量值。但是,所有自动分配的值都是连续生成的(因此高于最近执行的先前语句生成的自动增量值)。“多余”的数字丢失。

如果您使用的是InnoDB,则可以选择:

  1. 避免
    INSERT ... ON DUPLICATE KEY UPDATE
  2. 对于“传统”自动增量锁定模式,请将
    innodb_autoinc_lock_mode
    参数设置为
    0
    ,以确保所有
    INSERT
    语句将为
    AUTO_INCREMENT
    列分配连续的值。但是,这是通过在语句期间锁定来完成的,因此,此设置会导致性能下降。
  3. (推荐)忽略
    AUTO_INCREMENT
    列中的间隙。

注意:

AUTO_INCREMENT
在MyISAM下,处理方式完全不同,这不会表现出此行为。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392860.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号