MySQL更新操作的方法有哪些
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"MySQL更新操作的方法有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!案例分析
千家信息网最后更新 2026年11月01日MySQL更新操作的方法有哪些案例分析
更新账户金额
直接更新
乐观锁方案
无锁方案
排队操作
常见问题
如果数据中存在 update_time 字段受影响的行数是多少?
如果执行 update 更新但受影响的行数为 0 会加行锁吗?
本篇内容介绍了"MySQL更新操作的方法有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
案例分析
创建数据库的DDL:
CREATE TABLE `hw_account` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `balance` int(11) DEFAULT NULL, `status` varchar(20) DEFAULT NULL, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;
更新账户金额
直接更新
方案 1 查询后更新
# 数据查询select * from hw_account where id = 1;# 数据更新update hw_account set balance = 5 where id = 1;
存在的问题,就是分两次操作,如果并发执行的时候,可能造成更新丢失的问题.
乐观锁方案
利用版本号操作,即对数据库增加乐观锁的方式进行。
# 数据查询select * from hw_account where id = 1;# 数据更新update hw_account set balance = 5 , version = version + 1 where id = 1 and version = n; # 判断是否成功 if row < 1 { 回滚}存在的问题,如果该条数据并发操作的时候,会导致其他的请求失败。如果这个请求的前置链路比较长的话, 回滚成本比较高。
无锁方案
不用查询,采用数据库的计算,也不需要版本号的操作,直接通过域值进行有效性判断。具体的 SQL 如下:
# 数据更新update hw_account set balance = balance + @change_num , version = version + 1 where id = 1 and version = n; # 判断是否成功 if row < 1 { 回滚}这种方案修改比较简单, 但是依赖于数据计算,感觉不是特别友好。
排队操作
通过 redis 或者 zk 的分布式锁,进行数据请求进行排队。然后在进行数据更新。
# 伪代码if (获取分布式锁) { update hw_account set balance = @balance where id = 1;} else { # 进入等待,或者进行自旋获取锁}常见问题
如果数据中存在 update_time 字段受影响的行数是多少?
update_time 的字段定义如下,如果数据为id = 1, status = 1 如果执行更新数据的 sql 为
update hw_account set `status` = 1 where id = 1;
返回的受影响的行数为 0;
如果执行 update 更新但受影响的行数为 0 会加行锁吗?
会的, 执行更新的语句都会加行锁(前提,事务内)
"MySQL更新操作的方法有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
数据
更新
方案
问题
查询
数据库
影响
方法
乐观
成功
内容
分布式
字段
数据查询
时候
更多
案例
版本
知识
加行
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网金融监管科技数据
科技互联网项目
互联网下的科技发展
科技服务与互联网
齐家互联网科技有限公司
长亮科技互联网金融
苏州五指互联网络科技有限
千方科技属于互联网企业吗
开一家科技互联网公司需要多少钱
链环科技传统企业怎么转型互联网
银川新华互联网科技学校联系电话
上海科技产业互联网平台
中国互联网有什么科技
杭州披云加互联网科技有限公司
领航科技大厦互联网公司
广东鹅鹅鹅互联网科技有限公司
互联网高科技行业有哪些企业
互联网科技机房
好易买互联网科技
三亚科技创新互联网基地
咖啡豆
科技互联网政务服务
互联网科技开发公司
友谊互联网络科技
互联网高科技企业
汽车互联网创新科技园
华服互联网科技官网
佛山市翊博互联网络科技有限公司
科技互联网专业务虚会材料
互联网大会出现的黑科技