[英]mysql unique index used as exception handling method in java
我想知道基於java中sql的唯一索引捕獲異常是否是一個好主意。
我想捕獲一個異常,例如“ 1-0重復項”,然后處理異常,否則在數據庫表中正確插入?
我說你不這樣做,有兩個原因:
我發現交易更簡單:
性能問題 :
我說測量兩次,切一次 。 剖析您特定用例的用法。 我要說的是,除了大量的數據庫使用情況之外,性能將不是問題。
原因是,一旦您在該特定行上執行了SELECT
,它的數據將被放置在數據庫緩存中,並立即用於對INSERT
語句的索引進行插入檢查。 同樣要記住,此訪問由索引支持,因此得出結論,性能將不是問題。
但是,像往常一樣,要進行測量。
我不明白為什么不這樣。 它可能比在插入之前運行查詢更有效。 但是,捕獲異常的錯誤代碼可能比識別錯誤消息要好。
您可以使用REPLACE命令。 它根據記錄的存在來插入/更新。 而且它也是原子的,而查詢然后不是插入/更新。 如果檢測到密鑰沖突,這取決於您要做什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.