mysql update tabel set count=count+1并发问题

eeq64g8w  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(1010)

我需要更新一个表并设置 VOTE_COUNT = VOTE_COUNT + 1 每次调用时,假设我有10000个对数据库的并发访问权限,并同时执行相同的语句: UPDATE VOTE SET VOTE_COUNT = VOTE_COUNT + 1; 会不会有什么并发问题使得结果不等于10000(初始计数=0)

cczfrluj

cczfrluj1#

根据mysql/mariadb底层存储引擎的不同,您可能会遇到并发或性能问题。
最好是有一个带有事务处理的存储引擎,这样就不会出现并发问题。
对于使用没有事务处理的存储引擎的情况,它取决于锁定(否、基于行或基于表)。
如果没有锁定,可能会出现并发问题,因为两个update语句可以同时读取一个值,请添加1并将其存储回去—这样一个(或多个)update语句就会丢失!因为它们都会存储相同的值。
当为每次更新锁定表时,并发更新语句的速度会非常慢!

相关问题