一般都来都会使用
lock table
然后在
unlock
但是今天google的时候发现还可以用 for update 进行行锁
这样就产生了一个疑问
如果我是select 一群数据,是不是我就是把这群数据全部锁住了
为了防止并发,一般是锁整个表还是锁住部分的数据?
一般都来都会使用
lock table
然后在
unlock
但是今天google的时候发现还可以用 for update 进行行锁
这样就产生了一个疑问
如果我是select 一群数据,是不是我就是把这群数据全部锁住了
为了防止并发,一般是锁整个表还是锁住部分的数据?
5 回答1.5k 阅读
2 回答2.2k 阅读
3 回答2.1k 阅读
3 回答668 阅读✓ 已解决
1 回答999 阅读
1 回答673 阅读✓ 已解决
1 回答965 阅读
在数据库那端,取决于存储引擎。MyISAM引擎是直接锁表(只有表级的锁),InnoDB支持行锁。
如果存储引擎支持的话,取决于你的业务需求。
一般来说,锁的粒度越小越好,前提是要满足性能需求。