我最近read由於InnoDB在服務器重新啓動時重新計算AUTO_INCREMENT
的值,ID列表高端的任何記錄都可能重用其ID。如何不回收InnoDB中的auto_increment ID
通常情況下,這不是問題,因爲刪除用戶時,與ID關聯的所有內容都會從其他表中刪除。
但是我故意離開他們的論壇帖子成爲孤兒,標記爲「發佈者=用戶#123 =」,以便保留過去的對話。顯然,如果一個ID被重用,這將是一個問題。
我以前從未遇到過這個問題,因爲總是有足夠的新用戶使得ID不太可能以這種方式重用。然而,在我的新項目註冊中,很少出現頻繁的非正常用戶刪除(尤其是因爲「Open Alpha」帳戶僅作爲預覽持續三天),並且此類ID重用現在已發生三次。
我通過在其他地方爲AUTO_INCREMENT
保存正確的值並使用該值而不是依賴內部值來「解決」了問題。有沒有一種真正的方式讓InnoDB記住實際的最後一個值?
而不是刪除的帳戶記錄,爲什麼不明確出來,將名稱更改爲「用戶#11」,併成立了「刪除「標誌嗎?然後你保持參照完整性(並且可以使用FK),而不用擔心ID被重用。 – 2012-04-17 03:09:47