MYSQL在工作中的應用

2021-10-07 22:35:15 字數 1215 閱讀 7817

(1)多表操作,必須開啟事務

(2)陣列儲存db可以使用json序列化。主要是考慮json是比較通用的資料格式,如果使用分隔符拼接必須單獨約定乙個分隔符。

choicestr += fmt.

sprintf

("%v,"

, choice)

strings.

trimright

(choicestr,

","),==

>

choicebyte, err := json.

marshal

(field.choice)

choicestr :=

string

(choicebyte)

⚠️注意:把乙個陣列存入資料庫,有兩種方式

a.用字串拼接,但是要與前端約定每個陣列之間的分隔符

b.用json序列化,再轉換成字串(這種更好)

(3)資料庫事務回滾是建立在同乙個資料庫物件上,因此獲取orm物件時必須使用單例模式,防止存在多執行緒、多程序的使用。

(4)資料庫事務相當於對資料庫中資料的操作加鎖

(5)mysql是不支援巢狀事務的,開啟了乙個事務的情況下,再開啟乙個事務,會隱式的提交上乙個事務

(6)mysql 報錯mysql busy buffer

現象:開啟事務後,採用協程去操作多張表

原因:因為事務過程只有乙個連線,事務內的操作都是順序執行的,在開始下乙個資料庫互動之前,必須先完成上乙個資料庫互動

(1)原生的sql語句注意特殊情況

例如where in()為空的情況

(2)原生的sql都要進行列印,以免出現錯誤,而不知道錯誤原因

oss儲存是大物件的服務

減少迴圈用原生的sql插入

sql :=

//使用map找出old資料與新資料的對應關係,用order by id

sql =

length :=

len(alltemplates)

/2

策略模式在工作中應用

物流系統要新增包裹資料,現在物流的上游有三種包裹 線上的包裹,線下的包裹,外部的包裹,每種包裹在新增時會有些不同的操作,比如線上線下的包裹新增後要發訊息給訂單履約中心方便監控,線上包裹新增時要判斷包裹是否需要抽檢,釘箱,並生成相關的資料等。每種包裹都有其特殊的操作,從系統維護的角度上說,可以使用策略...

策略模式在工作中的應用

最近在日常工作過程中接到乙個任務 需要提供乙個介面,根據不同的意圖返回給客服端不同的答案,每個意圖去識別答案的演算法都有各自不同的邏輯。作為乙個合格的crud程式設計師,接到這個需求腦袋裡的第一反應就是用if else去實現,但是這樣寫 太醜陋了,每個else裡面都會有大量的業務邏輯,對於後期接坑的...

責任鏈模式在工作中應用

判斷配件是否需要抽檢,現在系統有三種抽檢規則 商品規則,組織規則,其它規則,配件滿足任一規則即需要抽檢 因為配件要依次經過三種規則,所以考慮使用責任鏈模式 讓配件依次匹配商品規則,組織規則,其它規則,滿足任一規則即返回,不滿足繼續用下一規則判斷。結構 1.策略模版,建立乙個抽象類 commonins...