有两个sql语句被频繁执行。
select count from TableA where id = 1
update TableA set count = count +1 where id = 1
引擎是innodb,两条语句都没在事务里。
第一句作用为查询浏览量,第二句作用为修改浏览量。
请问在高并发的情况下:
select时能否select?
select时能否update,如果可以,会有什么问题?
update时能否select,如果可以,会有什么问题?
update时能否update,如果可以,会有什么问题?
这个问题就得看mysql的事务隔离级别了,以mysql的默认事务隔离级别Repeatable Read来解答下。
都可以,这三个问题类似所以放一起来回答了,在Repeatable Read隔离级别下,select是不会产生锁的也不会被锁,没有什么问题。
不能同时update,如果你上面sql的id是主键或唯一索引,会造成行锁,否则会锁整个表,在执行完update后锁才释放。