原文:慎用django orm的update_or_create方法

公司一个线上招聘项目,后端采用Django开发,数据库使用MySQL。最近一次线上招聘会活动,因短时间大量用户涌入,被吐槽服务响应时间过长。后端和运维人员经排查,定位到MySQL数据库有死锁 根据错误日志,发现产生死锁的有 个接口。这 个接口中,阅读业务代码,发现均有使用update or create。为什么update or create方法会造成死锁呢 通过阅读源码 发现,update o ...

2021-11-25 13:36 0 815 推荐指数:

查看详情

Django ORM中使用update_or_create功能

https://www.cnblogs.com/aguncn/p/4922654.html 今天,看了看官方文档,关于这个update_or_create,有了新的作法。 原理,就是filter条件照写,但使用一个defaults 字典来来决定是新增还是更新。 我自己的写代码片断 ...

Wed Mar 13 01:50:00 CST 2019 0 2248
Django ORM中使用update_or_create功能

官网的手写版如下: update_or_create( defaults=None, **kwargs) ¶ A convenience method for updating an object with the given kwargs, creating ...

Fri Dec 13 21:36:00 CST 2019 0 478
[django]update_or_create使用场景

update_or_create 作用是为了添加数据时防止重复. 先去查询, 如果没有在创建, 如果有则更新. update_or_create用法与密码存储实例 create方法 如果id是None 也会被创建成功 前端一般带id--create 不带id--update 能否 ...

Thu Oct 10 18:32:00 CST 2019 0 1865
update_or_create()

update_or_create ( 默认值=无 , ** kwargs ) ¶ 使用给定更新对象的便捷方法,kwargs必要时创建新对象。这defaults是用于更新对象的(字段,值)对的字典。值中的值defaults可以是callables ...

Tue Dec 18 23:36:00 CST 2018 0 2283
django中使用Model的update_or_create函数时报错

官方使用示例: 当update_or_create的查询结果大于1个时,那么就会报错MultipleObjectsReturned的错。 纠正方式就是尽可能的缩小查询范围,实在无法确认,那就老老实实的使用先判断是否存在再进行更新。 关键报错信息 ...

Thu Mar 29 07:15:00 CST 2018 0 903
Django6—ModelSerializer 、create,update方法

create: 1、创建序列化器对象时,如果仅仅只传data参数2、序列化器对象调用save方法时,会调用序列化器类中的create方法,进行数据创建操作 update: 1、创建序列化器对象时,如果同时给data和instance传参数2、序列化器对象调用save ...

Thu Feb 18 00:07:00 CST 2021 0 547
django 重写updatecreate,delete方法

话不多说,直接上代码吧: 主要重写了两个类: CategoryManager CustomQuerySet objects = CategoryManager() 测试结果: 注:测试的时候没有回调super方法,所以没有返回结果 save 方法需要在模型内重写 ...

Thu Sep 03 23:35:00 CST 2020 0 909
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM