MySQL45讲(一)(40)

embedded/2024/9/23 7:27:59/

回顾binlog_format=statement

  • STATEMENT

    记录SQL语句。日志文件小,节约IO,但是对一些系统函数不能准确复制或不能复制,如now()、uuid()等

在RR隔离级别下,binlog_format=statement

如果执行insert select from 这条语句是对于一张表的全部字段的话,这张表会加锁,以防在复制这张表的时候有其他语句对于表进行修改,应为如果允许其他表进行修改的话,那么可能导致binlog日志会存在问题,这样在你本地可能没啥问题,但是主从复制可能就出现问题了,因为主从复制是通过binlog来实现的

锁是锁部分需要访问的资源

如果是选取自己的表中一行插入自己的表中,那么就应该是会开出一个临时表,先把每一行给放进去,因为遍历整个表会把整个表给锁住,所以我们采用内存临时表,这样就不会锁住对应的内容了

当然,使用这种方法要注意表的大小,如果还算合理,可以放大内存表的大小

还有一个知识点是

对于一个唯一键冲突的表进行插入,会进行next-key lock,行锁加的是一个读锁

对于主键冲突,也是加入的是next-key lock

验证的时候事务不能关闭

对于这个来说,就是事务A插入了,会加一个记录锁,本来是next-lockkey 的 ,但是因为唯一索引所以退化为记录锁

,其他两个事务都占据了一个读锁,之后回滚,两个事务都在等待对方释放,造成死锁

insert into ... on duplicate key update这个语义的逻辑是,插入一行数据,如果碰到唯一这个语义的逻辑是,插入一行数据,如果碰到唯一键约束,就执行后面的更新语句,这里是直接加上写锁

后面更新的位置应该是前面insert失败的位置,并且insert和update算两条语句,如果都执行成功的话影响的行数是俩行

碰到唯一键约束冲突,应当尽快进行提交或者回滚事务


http://www.ppmy.cn/embedded/31233.html

相关文章

uniapp0基础编写安卓原生插件和调用第三方jar包和编写语音播报插件之编写语音播放安卓插件

前言 如果你不会编写安卓插件,你可以先看看我之前零基础的文章(uniapp0基础编写安卓原生插件和调用第三方jar包和编写语音播报插件之零基础编写安卓插件), 我们使用android.speech.tts.TextToSpeech进行编写语言播放插件 开始 uniapp <template><view style=&q…

Python系列一之excel的读取

这里我常用的 python 对于 excel 的读取库有两个&#xff0c;一个是 xlsxwriter 用于操作 excel 的写入&#xff0c;一个是 xlrd 用于 excel 文件的读取。 使用的库的版本如下&#xff1a; xlsx1.2.6xlrd1.1.0 xlsxwriter 写入 excel 新建一个 excel import xlsxwriterpat…

【Android学习】简易计算器的实现

1.项目基础目录 新增dimens.xml 用于控制全部按钮的尺寸。图片资源放在drawable中。 另外 themes.xml中原来的 <style name"Theme.Learn" parent"Theme.MaterialComponents.DayNight.DarkActionBar">变为了&#xff0c;加上后可针对button中增加图片…

docker系列9:容器卷挂载(下)

传送门 docker系列1&#xff1a;docker安装 docker系列2&#xff1a;阿里云镜像加速器 docker系列3&#xff1a;docker镜像基本命令 docker系列4&#xff1a;docker容器基本命令 docker系列5&#xff1a;docker安装nginx docker系列6&#xff1a;docker安装redis docker系…

G1 - 生成对抗网络(GAN)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目录 理论知识生成器判别器基本原理 环境步骤环境设置数据准备模型设计模型训练模型效果展示 总结与心得体会 理论知识 生成对抗网络&#xff08;Generative …

Sqlmap的使用

Sqlmap URL 检测 sqlmap直接对单一的url探测&#xff0c;参数使用-u或--url payload&#xff1a;sqlmap -u "http://192.168.10.1/sqlilabs/sqli-labs-php7-master/Less-1/?id1" --banner 注意&#xff1a;如果进入这个页面要先登录那么就需要把cookie带上 sqlm…

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(二)

本系列课程&#xff0c;将重点讲解Phpsploit-Framework框架软件的基础使用&#xff01; 本文章仅提供学习&#xff0c;切勿将其用于不法手段&#xff01; 继续接上一篇文章内容&#xff0c;讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 当我们同意许可协议之…

vue2 + antvx6 实现流程图功能

导入关键包 npm install antv/x6 --save npm install antv/x6-vue-shape 保存插件 (可选) npm install --save antv/x6-plugin-clipboard antv/x6-plugin-history antv/x6-plugin-keyboard antv/x6-plugin-selection antv/x6-plugin-snapline antv/x6-plugin-stencil antv/…