在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

MySQL如何批量更新死锁

133次阅读
没有评论

共计 1169 个字符,预计需要花费 3 分钟才能阅读完成。

这篇“MySQL 如何批量更新死锁”文章的知识点大部分人都不太理解,所以丸趣 TV 小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL 如何批量更新死锁”文章吧。

表结构如下:

CREATE TABLE `user_item` ( `id` BIGINT(20) NOT NULL,
 `user_id` BIGINT(20) NOT NULL,
 `item_id` BIGINT(20) NOT NULL,
 `status` TINYINT(4) NOT NULL,
 PRIMARY KEY (`id`),
 KEY `idx_1` (`user_id`,`item_id`,`status`)) ENGINE=INNODB DEFAULT CHARSET=utf-8

SQL 语句如下:

update user_item set status=1 where user_id=? and item_id=?

原因分析:

 mysql 的事务支持与存储引擎有关,MyISAM 不支持事务,INNODB 支持事务,更新时采用的是行级锁。这里采用的是 INNODB 做存储引擎,意味着会将 update 语句做为一个事务来处理。前面提到行级锁必须建立在索引的基础,这条更新语句用到了索引 idx_1,所以这里肯定会加上行级锁。  行级锁并不是直接锁记录,而是锁索引,如果一条 SQL 语句用到了主键索引,mysql 会锁住主键索引;如果一条语句操作了非主键索引,mysql 会先锁住非主键索引,再锁定主键索引。

这个 update 语句会执行以下步骤:

由于用到了非主键索引,首先需要获取 idx_1 上的行级锁

紧接着根据主键进行更新,所以需要获取主键上的行级锁;

更新完毕后,提交,并释放所有锁。

如果在步骤 1 和 2 之间突然插入一条语句:update user_item …..where id=? and user_id=?, 这条语句会先锁住主键索引,然后锁住 idx_1。

蛋疼的情况出现了,一条语句获取了 idx_1 上的锁,等待主键索引上的锁;另一条语句获取了主键上的锁,等待 idx_1 上的锁,这样就出现了死锁。

解决方案:

先获取需要更新的记录的主键

select id from user_item where user_id=? and item_id=?

逐条更新

 update user_item set status=? where id=? and user_id=?

批量循环重复第一步和第二步即可

以上就是关于“MySQL 如何批量更新死锁”这篇文章的内容,相信大家都有了一定的了解,希望丸趣 TV 小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注丸趣 TV 行业资讯频道。

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-02-03发表,共计1169字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 久久精品国产亚洲av四虎 | 三级不卡视频 | 国产成人爱情动作片在线观看 | 国产私密视频 | 久久影院在线观看 | 色综合久久久无码中文字幕 | 亚洲av综合色区无码一区爱av | 国产精品国产三级国av在线观看 | 鲁老汉精品视频在线观看 | 亚洲另类网 | 国产精品久久久视频 | 精品一区二区三区在线视频 | h无码动漫在线观看 | 91区国产福利在线观看午夜 | 搡老女人老妇老熟女hd | 偷拍自拍第1页 | 99热久久国产这里有只有精品 | 日本人妻人人人澡人人爽 | 成人欧美在线观看免费视频 | 福利片在线看 | 中文字幕一区二区三区四区五区人 | 特级毛片8级毛片免费观看 特级毛片aaaa级毛片免费 | 在线欧美精品国产综合五月 | 精品无码中出一区二区 | 国产免费做爰午夜视频 | 国产成人精品无码一区二区三区 | 成人18视频在线 | 日韩av激情在线观看 | 国产成人永久在线播放 | 女人被狂c躁到高潮视频 | 在线欧美精品一区二区三区 | 做爰成人五级在线视频| 亚洲天堂精品在线观看 | 欧美精品在线一区 | 亚洲天堂激情 | 呦交小u女国产秘密入口 | 全部在线播放免费毛片 | 日本熟妇色熟妇在线视频播放 | 国产一区二区三区在线视频 | 久久婷婷人人澡人人喊人人爽 | 日韩爱爱小视频 |