位置: 编程技术 - 正文

浅谈innodb_autoinc_lock_mode的表现形式和选值参考方法(浅谈幼儿良好行为的培养论文)

编辑:rootadmin

推荐整理分享浅谈innodb_autoinc_lock_mode的表现形式和选值参考方法(浅谈幼儿良好行为的培养论文),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:浅谈是什么意思,浅谈双减背景下的高效课堂,浅谈建筑地基基础加固施工技术亲,浅谈如何培养孩子的注意力,浅谈特殊儿童的融合教育论文,浅谈建筑地基基础加固施工技术亲,浅谈建筑地基基础加固施工技术亲,浅谈是什么意思,内容如对您有帮助,希望把文章链接给更多的朋友!

前提条件,percona 5.6版本,事务隔离级别为RR

条件1 innodb_autoinc_lock_mode设置为0

这时查看session3是等待自增锁,一直处于setting auto-inc lock状态

session2

ERROR (HY): Lock wait timeout exceeded; try restarting transaction

这时session3锁等待超时退出

session3

这时再看session3可以发现insert完成。

结论:innodb_autoinc_lock_mode为0时的,也就是官方说的traditional

级别,该自增锁是表锁级别,且必须等待当前SQL执行完成后或者回滚掉才会释放,这样在高并发的情况下可想而知自增锁竞争是比较大的。

条件2 innodb_autoinc_lock_mode设置为1

浅谈innodb_autoinc_lock_mode的表现形式和选值参考方法(浅谈幼儿良好行为的培养论文)

结论:innodb_autoinc_lock_mode为1时的,也就是官方说的consecutive

级别,这时如果是单一的insert SQL,可以立即获得该锁,并立即释放,而不必等待当前SQL执行完成(除非在其他事务中已经有session获取了自增锁)。另外当SQL是一些批量insert sql时,比如insert into ...select ...,load data,replace ..select..时,这时还是表级锁,可以理解成退化为必须等待当前SQL执行完才释放。

可以认为,该值为1时是相对比较轻量的锁,也不会对复制产生影响,唯一的缺陷是产生的自增值不一定是完全连续的(不过个人认为这个往往不是很重要,也没必要根据自增id值来统计行数之类)

条件3 innodb_autoinc_lock_mode设置为2

先说结论:当innodb_autoinc_lock_mode设置为2时,所有insert种类的SQL都可以立马获得锁并释放,这时的效率最高。但是会引入一个新的问题:当binlog_format为statement时,这时的复制没法保证安全,因为批量的insert,比如insert ..select..语句在这个情况下,也可以立马获取到一大批的自增id值,不必锁整个表,slave在回放这个sql时必然会产生错乱。我们做个测试验证复制不是安全的。

我们这时解析下主库的binlog不难发现问题原因,第一条批量insert还没执行完时,第二条简单insert执行时获得了自增id值为的锁,这时在主库写入是没有问题的,但是反应到从库时,因为是基于statement的复制,必然出现主键冲突。

总结:

1 innodb row复制时,可将innodb_autoinc_lock_mode设置为2,这时可在所有insert情况下表获得最大并发度

2 innodb statement复制时,可将innodb_autoinc_lock_mode设置为1,保证复制安全的同时,获得简单insert语句的最大并发度

3 myisam引擎情况下,无论什么样自增id锁都是表级锁,设置innodb_autoinc_lock_mode参数无效(测试略)

4 实际上提问者说到的在innodb引擎下自增id值作为主键的情况下,相比uuid或者自定义的主键,是可以提到插入速度的,因为innodb是主键聚集索引,实际的主键值必须按照主键顺序存取,那么自增id本身就是升序的,那么在插入数据时,底层就不必再做额外的排序操作,也减少了索引页分裂的次数,从而大大增加insert速度(除非其他方案也能保证主键完全自增)

以上这篇浅谈innodb_autoinc_lock_mode的表现形式和选值参考方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

MySQL几点重要的性能指标计算和优化方法总结 1QPS计算(每秒查询数)针对MyISAM引擎为主的DBMySQLshowGLOBALstatuslike'questions';+---------------+------------+|Variable_name|Value|+---------------+------------+|Questions||+---

解决mac使用homebrew安装MySQL无法登陆问题 如果你电脑是Mac的,使用homebrew安装MySQL是一个非常便捷的方式,但是还是会出现一些问题;首先保证你已经安装了mysql,如果是通过homebrew安装的,输入my

MySql登陆密码忘记及忘记密码的解决方案 方法一:MySQL提供跳过访问控制的命令行参数,通过在命令行以此命令启动MySQL服务器:safe_mysqld--skip-grant-tables&即可跳过MySQL的访问控制,任何人都可以

标签: 浅谈幼儿良好行为的培养论文

本文链接地址:https://www.jiuchutong.com/biancheng/349962.html 转载请保留说明!

上一篇:线上MYSQL同步报错故障处理方法总结(必看篇)

下一篇:MySQL几点重要的性能指标计算和优化方法总结(mysql的用处)

  • 隔月发票退回应该如何操作
  • 税控盘减免税款年末如何结转
  • 自建厂房的进项税额能一次性抵扣吗
  • 三证合一后税务登记证要收回吗
  • 软件销售利润
  • 出口退税进项发票认证勾选
  • 企业哪些做法违背了营销道德
  • 收到对方的预付款,需要多久开发票
  • 发票已开款项未入账有什么影响?
  • 买牛奶的公司会计怎么做账
  • 合同违约补偿款需要缴纳增值税吗?
  • 药材种植政策
  • 进口增值税内销可以抵扣吗
  • 一般进口货物的完税价格
  • 土地使用税计税依据及计算方式
  • 1697510768
  • 去年开的增值税普通发票今年可以作废吗
  • 员工有多处收入怎么申报个人所得税
  • 增值使用费可取消吗?
  • 苹果手机系统更新在哪里找
  • 购买的房屋如何过户
  • 小规模纳税人的企业所得税税率
  • 补交之前年度税款怎么调账
  • 增值税中非经营活动包括哪些
  • 营改增后土增税收入
  • 违约金的增值税税率
  • 陶尔米纳电影节
  • 暂估价是单价还是总价
  • win11开机后开始菜单没反应
  • 前端框架三大框架
  • laravel 实例
  • 人力资源企业税收风险
  • python中numpy.empty()函数的用法
  • 预付账款主要核算哪些内容
  • 土石方收据图片
  • 生产企业生产车间人员密度是多少
  • 无形资产出租如何入账
  • 新会计制度固定资产对应科目
  • 个人独资企业所得税申报流程
  • SQL高级应用之同服务器上复制表到另一数据库中并实现去重复
  • 库存商品转出
  • 年末已经结账了怎么入账
  • 哪些情况需要开具无违法犯罪证明
  • 预收账款和应收账款可以合并吗
  • 代扣代缴的社保为什么是其他应付款
  • 法人向公司借款如何做账
  • 商业企业购入商品
  • 银行承兑到期后未兑付
  • 预缴所得税科目
  • 销售折扣销售方会计处理
  • 增值税减免税款计入什么科目
  • 费用发票可以不抵扣进项税吗
  • 应交税费核算规定最新
  • 企业商业汇票到期款项存入银行
  • 什么差旅费
  • 小规模纳税人收到专票的会计分录
  • 待抵扣税额怎么做分录
  • 小规模季度没超过45万怎么纳税增值税
  • mysql中关于图书馆实训题
  • sql server在表里查找具体数据
  • freebsd查看硬盘信息
  • xp系统有什么用
  • 应用商店如何更新软件
  • win7系统运行速度提升
  • linux 硬盘满了
  • windowsxp的主要特点是什么
  • linuxwho
  • 创建nodejs项目的步骤
  • opengl 函数可以在子线程中调用吗
  • 网页设计div css布局
  • shell脚本 su
  • unity安装进度条不动
  • 安卓中的菜单
  • mysql里多表查询语句怎么写
  • 浙江社保费申报说无有效三方协议信息
  • 贸易公司税收政策
  • 江西税收优惠
  • 武汉市国税局长
  • 浙江省如何自助缴纳社保
  • 资源税计税价格包括从坑口
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设