我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql innodb的行锁(6) --不安全语句加锁

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql innodb的行锁(6)  --不安全语句加锁

一般情况下select 使用mvcc的技术,是不加行锁的,但是对于insert ... select , create table .. select 等不安全语句,会自动对源表加共享锁
当然是否加锁还受到下面参数控制, 因为这个加锁不是隔离级别的原因,而是为了复制安全。

root@sakila 11:03:59>show variables like '%unsafe%';
+--------------------------------+-------+
| Variable_name                  | Value |
+--------------------------------+-------+
| innodb_locks_unsafe_for_binlog | OFF   |
+--------------------------------+-------+
1 row in set (0.00 sec)

会话1:
root@sakila 11:02:28>insert into target select * from tab_no_index;
Query OK, 7 rows affected (0.01 sec)
Records: 7  Duplicates: 0  Warnings: 0

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql innodb的行锁(6) --不安全语句加锁

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

一条简单的更新语句,MySQL是如何加锁的?

看如下一条sql语句:# table T (id int, name varchar(20))delete from T where id = 10;MySQL在执行的过程中,是如何加锁呢?在看下面这条语句:select * from T where id =
一条简单的更新语句,MySQL是如何加锁的?
2020-02-11

Go语言atomic.Value如何不加锁保证数据线程安全?

这篇文章主要介绍了Go语言atomic.Value如何不加锁保证数据线程安全详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-20

详解Go语言Sync.Pool为何不加锁也能够实现线程安全

在这篇文章中,我们将剖析sync.Pool内部实现中,介绍了sync.Pool比较巧妙的内部设计思路以及其实现方式。在这个过程中,也间接介绍了为何不加锁也能够实现线程安全,感兴趣的可以学习一下
2023-05-17

编程热搜

目录