哪種操作更昂貴 - 在INSERT
之前發出SELECT
查詢,或在INSERT
操作期間處理異常?在插入或插入異常之前,我應該檢查一個鍵是否存在?
例如,假設我想要堅持某些用戶請求參數說param1
(主鍵&唯一索引),param2
,param3
到數據庫表的要求顯示通知,如果一個重複的鍵已經存在。此外,假定整個過程預計不會超過500毫秒的實時情況。
爲什麼經常建議爲三個參數執行插入語句,然後處理插入異常以迎合重複?我知道拋出異常有成本 - 數據庫查詢的成本是否超過拋出異常的成本?
您可以使用A vs B代碼示例更清楚地說明此問題。即使修改後,我也無法用代碼描繪你想要描述的內容。 「將參數保存到數據庫」是什麼意思?將它們插入表中? –
爲什麼你不這樣做?儘可能防止異常,並在可能時處理異常,都是良好的做法。 – overslacked
你期望嘗試插入重複的頻率如何?表格是否正確索引? – shawnt00