think-orm icon indicating copy to clipboard operation
think-orm copied to clipboard

高并发插入数据出现 MYSQL | ERROR 1305(42000) SAVEPOINT trans*** DOES NOT EXIST

Open lian-yang opened this issue 5 years ago • 1 comments

MYSQL | ERROR 1305(42000) SAVEPOINT trans*** DOES NOT EXIST

看源码Model.php insertData 和 updateData 方法都默认使用了事务处理 在高并发插入数据的情况下出现了

MYSQL | ERROR 1305(42000) SAVEPOINT trans*** DOES NOT EXIST 导致插入数据被rollback

我应该如何处理?

lian-yang avatar Aug 28 '20 03:08 lian-yang

高并发下不建议使用orm,可以使用mysqli或者pdo原生代码,灵活机动,可控性强。如果非要使用orm,循环遍历就不会有问题,不要并发操作。我最近用swoole也出现了类似问题,最后还是用连接池+mysqli进行查询,循环遍历进行的更新

huihuangjiuai avatar Feb 15 '23 02:02 huihuangjiuai