yii MySQL插入成功执行并返回ID,但并发时有时不保存数据

ylamdve6  于 2022-11-09  发布在  Mysql
关注(0)|答案(1)|浏览(172)

我正在遭受一个奇怪的问题。我正在使用MySQL企业服务器版本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条记录未保存在数据库中。

有人能帮我吗?

7rtdyuoh

7rtdyuoh1#

当我处理高并发性时,我使用ON DUPLICATE KEY UPDATE语句。这可能会解决你的问题。
https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html
但是数据没有插入到数据库中,但是服务器没有报错为什么

相关问题