【发布时间】:2021-02-08 09:07:38
【问题描述】:
我遇到了一个奇怪的问题。 我使用的是 MySQL Enterprise Server VERSION 8。
我有一个 API,它在 Mysql 数据库中执行以下语句:
START TRANSACTION;
Many select statements;
INSERT INTO ... VALUES(...);
COMMIT;
Many select statements;
这是在一个表中插入并检索表中新创建记录的 ID。 当服务器负载低时调用此 api 时,这可以正常工作。
但是当服务器负载增加时,执行良好,还返回新创建的记录ID,但没有将记录保存到数据库中。
目前,如果我同时从前端调用此 API 25 次,则此问题会发生 1 到 2 次。即我可以在日志中看到所有查询和事务,并且都给出了记录的 ID,但是 1-2 条记录没有保存在数据库中。
如果有任何想法,任何人都可以帮助我吗?
【问题讨论】:
标签: mysql concurrency yii