我使用mysql(InnoDB),php-mysqli和PDO建立了一个网站来跟踪进度数据。
最初,后端存在大量同时SELECT-UPDATE
个查询。在一次交易中,提出了两个陈述:SELECT id FROM ... WHERE started = 0 FOR UPDATE
,UPDATE ... SET started = 1 ...
。由于一些预处理,它们是分开的。后端运作良好。
现在我正在编写监控数据库的前端,并计划使用SELECT COUNT(started) FROM ... WHERE started = 0
之类的语句。我不确定在这种情况下哪种锁会使用mysql。由于我不需要保证每个前端呼叫都成功,后端的成功率更为重要。
为了澄清,“后端”这里是几个PHP文件,程序将作为REST API访问; “frontend”是用户访问的PHP。
问:这些监控SELECT
会导致后端失败吗?如果是,有没有办法优先考虑后端访问?