對於select、update、insert,在項目開發中的使用順序:
在項目開發中經常會遇到很多需要修改對某某條件下的數據進行修改或者判斷數據是否存在,存在則修改不存在則插入的,對於這樣的邏輯,必須有一個SQL優先級的概念,update\insert的優先級必須高於select,要使用update或者insert來進行邏輯控制而不是select,否則就極容易出現高併發下的數據安全問題;
通過update控制邏輯是否執行,update會自動加上行鎖,這樣就可以保證併發的安全;
通過insert控制邏輯是否執行,首先對於要插入的表字段建立唯一unique,這樣重複插入就會報異常,判斷是否有異常來控制邏輯;
select也可以進行控制,需要通過添加for update,進行行鎖來保證併發安全,對於select的for update需要對where條件後的字段建立索引;