如何解决SQL并发问题?

网友解答: 高并发最可能遇到的就是思索问题了。首先根据业务确定使用的什么隔离级别,一般要么是确认读,要么是可重复读。确认读有可能两次读的数据不一致可重复读也叫快照读,能确保每次读的数据一

网友解答:

高并发最可能遇到的就是思索问题了。

首先根据业务确定使用的什么隔离级别,一般要么是确认读,要么是可重复读。

确认读有可能两次读的数据不一致

可重复读也叫快照读,能确保每次读的数据一致,但不保证能读到最新commit的数据。

其次要考虑更新语句是否会产生死锁,要确认表中相关字段都有什么锁。

主键:主键索引上锁,数据行上锁

唯一索引:索引上锁,主键索引上锁,数据行上锁

普通索引:会锁住所有符合条件的索引和行,还会上间隙锁

无索引:会锁全表,逐渐释放不符合条件的锁

因此要尽可能只锁需要的行,避免不同事务锁住互相需要的行,造成死锁。

标签: