千家信息网

怎么理解mysql innodb的行锁方式

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"怎么理解mysql innodb的行锁方式",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么理解mysql innodb的行锁方式"吧!
千家信息网最后更新 2026年11月01日怎么理解mysql innodb的行锁方式

本篇内容主要讲解"怎么理解mysql innodb的行锁方式",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么理解mysql innodb的行锁方式"吧!

真正的方式是: 基于索引找到对应的行(不是使用所有的where条件找到对应的行), 然后基于行数据加锁。
root@sakila 10:27:15>show indexes from tab_no_index \G;
*************************** 1. row ***************************
Table: tab_no_index
Non_unique: 1
Key_name: id
Seq_in_index: 1
Column_name: id
Collation: A
Cardinality: 6
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
*************************** 2. row ***************************
Table: tab_no_index
Non_unique: 1
Key_name: name
Seq_in_index: 1
Column_name: name
Collation: A
Cardinality: 6
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
2 rows in set (0.00 sec)

会话1:
root@sakila 10:26:17>select * from tab_no_index where id=1 for update;
+------+------+
| id | name |
+------+------+
| 1 | 1 |
| 1 | 4 |
+------+------+
2 rows in set (0.00 sec)

会话2:通过 name index 找到 id=1 and name=4 的这条记录,想加锁,但是不成功,因为该条记录已经被会话1加锁了。
root@sakila 10:27:04>select * from tab_no_index where name='4' for update;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

到此,相信大家对"怎么理解mysql innodb的行锁方式"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

方式 内容 学习 实用 更深 成功 兴趣 实用性 实际 操作简单 数据 方法 更多 朋友 条件 索引 网站 频道 查询 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 广东万易互联网科技有限公司惠州分公司 江苏根荣互联网科技 互联网扶贫科技 互联网科技未来 上海喔噻互联网科技 腾讯科技 互联网女皇 互联网科技logo 兼蜜互联网科技 互联网金融和金融科技 华中科技有哪些互联网大佬 互联网校园科技培训 米聚互联网科技南京有限公司排面 西安小鹰速贷互联网科技有限公司 互联网科技大赛获奖感言 浙南科技城互联网大厦招聘 易租星互联网科技有限公司 互联网大会出现的黑科技 宁波允成互联网科技有限公司 恒生科技互联网指数十大成分股 中智农互联网科技 中关村互联网 科技集团 深圳恒合互联网络科技有限公司 福州新华互联网科技学校 知乎 贵州叶脉互联网科技有限公司所属行业 花神(南京)互联网科技有限公司 河南住房之家互联网科技 洛阳共同富裕互联网科技有限公司 信承诺互联网科技有限公司 抖集互联网科技技术咨询
0