
比如一条 MySQL 记录,可能并发同时去修改这条记录,假设是把一个字段的值从 0 变为 1 ,理论上应该只有一个是修改成功的,这种场景一般是怎么处理呢?
最好有伪代码讲讲这个问题。
1 akira 2016-03-06 23:34:02 +08:00 1.事务,这个没什么好说的吧。。 2.丢一个地方集中处理。借助消息或者别的,从并行改成串行。 |
2 beneo 2016-03-07 09:36:39 +08:00 乐观锁? |
3 jziwenchen 2016-03-07 09:53:54 +08:00 innodb 都是行锁 每次修改数据 都会有排它锁. 没弄明白你问题的场景... 能补述下吗 |
4 jziwenchen 2016-03-07 09:55:17 +08:00 并且 MySQL 可以 手动的 锁表 lock table / unlock table . 并且分表 二条数据可以打到不同表去 ,所以 你业务场景是什么? |
5 tanteng OP @jziwenchen 比如两个人同时打开了一个页面,这个页面上有个操作是改变一条记录的状态,可能两个人会去同时操作,这个时候要怎么处理。 |
6 gdtv 2016-03-07 16:59:40 +08:00 1 楼已经说得很清楚了 |