为什么 mysql 事物能保证失败回滚,如题
1
chunrong918 OP 这种,标准答案是什么
|
2
KamenReborn 2019-03-19 15:08:02 +08:00
|
3
MrKou47 2019-03-19 15:08:52 +08:00 via iPhone
这不就是事务嘛?
|
4
chunrong918 OP @MrKou47 对啊 ,事物为什么能保证回滚,原理是什么
|
5
sun1991 2019-03-19 15:15:54 +08:00
redo log 了解一下.
|
6
sun1991 2019-03-19 15:16:45 +08:00
redo log, undo log 了解一下.
|
7
chunrong918 OP @sun1991 嗯 感谢 再请教一下哈 mysql 什么情况下会触发表锁
我的理解是 mysiam 引擎默认就是表锁,所以对 mysiam 引擎表的 crud 都会触发表锁(这样子回答不知道合不合适,请指教),至于 innodb 就不懂了 |
8
des 2019-03-19 15:37:26 +08:00 via Android
@chunrong918 MVVC 多版本的并发控制协议?
|
9
CallMeReznov 2019-03-19 15:38:23 +08:00
靠日志?
|
10
liunian1004 2019-03-19 15:39:44 +08:00 via iPhone
靠持久化的 log 呗
|
12
chunrong918 OP @des 不懂,mvcc 不是很了解,解释一下呗
|
13
des 2019-03-19 15:47:06 +08:00 via Android
@chunrong918
搜一下,大把的解释介绍 |
14
sun1991 2019-03-19 15:53:45 +08:00
@chunrong918 MYSIAM 不了解. INNODB 的话, 我的理解是, 既然是 Oracle 家实现的, 那么和 Oracle 应该差不多,修改的时候触发行锁. 只有在少数情况下, 比如修改表结构的时候才锁表吧.
|
15
tabris17 2019-03-19 15:55:15 +08:00
google 搜“ MVVC ”有真相
|
16
kernel 2019-03-19 16:41:07 +08:00
LZ 你这学习是要靠别人一口口喂的吗,一搜网上一大把的东西,相关的书也多
|
17
masker 2019-03-19 17:01:22 +08:00 via Android
多看书不好吗?
|
18
m939594960 2019-03-19 17:08:21 +08:00
CPU 自带这个功能
|
19
x7395759 2019-03-19 17:48:54 +08:00
可以 google 吗?
|
20
inframe 2019-03-19 18:09:34 +08:00 via Android
transaction 对目标加锁,再不济用个 stack 保留变量,执行完成解锁
|
21
mmdsun 2019-03-19 18:29:20 +08:00 via Android
这个问题最终会讲到 CPU 和电路...
|
22
Coey 2019-03-19 21:26:56 +08:00
简单一句带过就是锁和 MVCC 可以保证,想要深入理解的话,就需要自己放狗搜了
|