我有一個大表(500萬行),用所謂的唯一標識符列「UNIQUE_ID」使用MySQL唯一索引來防止重複,而不是重複搜索?
我正在通過Node.js的插入查詢(node-mysql
綁定),並有一個機會,可以重複嘗試被插入。
兩個解決方案是:
1)製作 'UNIQUE_ID' 的指數,並檢查整個數據庫重複記錄,要插入之前:
'SELECT unique_id WHERE example = "'+unique_id+'" LIMIT 1'
2)製作 'UNIQUE_ID' 一MySQL中的唯一索引,並執行INSERT 而不用檢查重複項。顯然,任何重複都會導致錯誤,並且不會被插入到表中。
我的預感是解決方案2)更好,因爲它可以防止重複搜索更糟糕的情況(500萬行)。
使用解決方案2)有什麼缺點嗎?
謝謝,這是一個很好的答案 –