MySQL45讲(一)(40)

回顾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算两条语句,如果都执行成功的话影响的行数是俩行

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

相关推荐

  1. MySQL45()(42)

    2024-05-04 15:32:05       29 阅读
  2. MySQL45()(43)

    2024-05-04 15:32:05       29 阅读
  3. MySQL45()(44

    2024-05-04 15:32:05       36 阅读
  4. MySQL实战45

    2024-05-04 15:32:05       36 阅读
  5. MySQL45 -- MYSQL中的锁

    2024-05-04 15:32:05       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-04 15:32:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-04 15:32:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-04 15:32:05       82 阅读
  4. Python语言-面向对象

    2024-05-04 15:32:05       91 阅读

热门阅读

  1. 【Python进阶(七)】——Series数据结构

    2024-05-04 15:32:05       35 阅读
  2. 2024-05-03 问AI: 在深度学习中,什么叫文字嵌入层

    2024-05-04 15:32:05       35 阅读
  3. redis的安装

    2024-05-04 15:32:05       31 阅读
  4. AIGC笔记--Diffuser的基本使用

    2024-05-04 15:32:05       33 阅读
  5. stream流

    2024-05-04 15:32:05       38 阅读
  6. 字符判断(数字&字母)

    2024-05-04 15:32:05       40 阅读
  7. 内存管理

    2024-05-04 15:32:05       38 阅读
  8. 5G图标显示分析二

    2024-05-04 15:32:05       36 阅读
  9. C++ primer笔记

    2024-05-04 15:32:05       38 阅读
  10. Spring MVC:深入剖析与应用实践

    2024-05-04 15:32:05       33 阅读
  11. [Rust] 打印变量类型

    2024-05-04 15:32:05       37 阅读