原文:慎用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