MYSQL 一个UPDATE批量更新 会部分更新吗
阅读:282043 | 作者:xys***@126.com | 发布时间:2019-01-21 17:35:58
MYSQL 中,一个update语句,如果要更新数百万行记录,在异常出现的情况下(比如突然断电、系统资源耗尽),有没有可能只更新了部分数据?或者导致数据库崩溃?
关键词:MYSQL UPDATE 批量更新 事务 binlog
网友回答
11条回答
xysmc: 可能会只更新了部分数据,一般不会引起崩溃。
2019-01-21 17:52:03 举报
赞 2 踩 2 回复
xysmc 回复 xysmc
2019-01-21 20:03:55 举报
赞 5 踩 1 回复
xysmc 回复 xysmc
2019-01-21 20:04:56 举报
赞 1 踩 1 回复
xysmc 回复 xysmc
2019-01-21 20:16:50 举报
赞 1 踩 1 回复
xysmc 回复 xysmc
2019-01-21 20:18:28 举报
赞 1 踩 1 回复
xysmc 回复 xysmc
2019-01-21 20:20:01 举报
赞 1 踩 1 回复
xysmc经咨询MYSQL大牛,得出如下结论:
没有开启事务会出现更新了部分数据的问题,断电一般不会导致数据库崩溃,只有资源耗尽时才容易导致数据库崩溃。

MYSQL更新数据的原理是,binlog 的写入逻辑比较简单:事务执行过程中,先把日志写到 binlog cache,再把 binlog cache 写到 binlog 文件中,然后再逐条更新。

对于大批量的数据更新,为保证更新的原子性,应开启事务,哪怕只有一条SQL语句。
2019-01-21 18:02:11 举报
赞 2 踩 1 回复
2020-03-29 19:25:37 举报
赞 7 踩 1 回复
TA关注了 2
TA被 1 人关注