在我的NodeJs應用程序中,我使用一個線程(由我自己定義)在計算機中打開端口。有一個限制,只有一個線程應該綁定到每個端口。如何針對可能的重複條目優化Mysql INSERT操作?
我在Mysql中維護一個表(PORTS),它包含有關打開端口和綁定線程的數據。目前我正在使用以下方法來避免兩個線程綁定到同一個端口。
=>將一個條目插入帶有端口號的PORTS表中作爲PRIMARY KEY。這將引發以下錯誤
error inserting semaphore port:10014 error Error: ER_DUP_ENTRY: Duplicate entry 'port:10014' for key 'NAME'
我抓住這個錯誤,然後嘗試另一個端口,直到沒有引發錯誤。
這是一個很好的做法嗎?或者我應該首先檢查值是否存在使用SELECT查詢,然後插入條目,如果不是? 注意AFAIK在第二種方法中,可以使用SQL事務將SELECT和INSERT作爲原子操作運行。
目前的方法對我來說似乎很好。 – Strawberry