比如一条 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 1
并且 MySQL 可以 手动的 锁表 lock table / unlock table . 并且分表 二条数据可以打到不同表去 ,所以 你业务场景是什么?
|
5
tanteng OP @jziwenchen 比如两个人同时打开了一个页面,这个页面上有个操作是改变一条记录的状态,可能两个人会去同时操作,这个时候要怎么处理。
|
6
gdtv 2016-03-07 16:59:40 +08:00
1 楼已经说得很清楚了
|