mysql 关于多用户同时select的问题

时间:2022-08-29 11:31:54
主要问题如下:
        我这里有很多台电脑,跑的是相同的代码(分布式系统)。其中需要请求mysql
        比如select koubei_url from autohome_pinpai where is_req=1 order by id asc  limit 0,1;
        每一次只需要获取一条信息就可以,然后程序会进行一系列操作后,修改is_req的值。
       这里就是 需要保证所有在跑的程序获取到的是不同koubei_url
       是需要使用行锁?排他锁?还是1其它的,感谢大佬们帮忙
       

3 个解决方案

#1


如果你取的这条记录,要求你取之后别人不能改动,那么就需要加锁,可以用 FOR UPDATE

#2


这个就可以发散思维了,你可以做一个分发的过程啊,反正那么多的机器呢,这个最省事,还省资源

#3


加锁的话效率太低了,你可以在更新语句中加个条件is_req=1,然后根据更新影响条数,来判断是否更新成功,如果失败,重试查询更新操作。

#1


如果你取的这条记录,要求你取之后别人不能改动,那么就需要加锁,可以用 FOR UPDATE

#2


这个就可以发散思维了,你可以做一个分发的过程啊,反正那么多的机器呢,这个最省事,还省资源

#3


加锁的话效率太低了,你可以在更新语句中加个条件is_req=1,然后根据更新影响条数,来判断是否更新成功,如果失败,重试查询更新操作。