最近、readは、サーバが再起動したときにInnoDBがの値を再計算するため、IDリストのハイエンドのレコードがIDを再利用できる可能性があります。InnoDBでauto_increment IDをリサイクルしない方法
通常、これは問題ではありません。ユーザーが削除されると、IDに関連付けられているすべてのものが他のテーブルからも削除されるためです。
しかし、私は意図的にフォーラムの投稿を孤児にして、「投稿者:=ユーザー#123 =」というラベルを付けて、過去の会話を保持します。明らかに、IDを再利用する必要がある場合、これは問題になります。
このような方法でIDを再利用する可能性が低い新しいユーザが常に存在するため、これまでにこの問題は発生しませんでした。しかし、私の新しいプロジェクトでは、サインアップはまれであり、非アクティブなユーザーの削除が頻繁に行われています(特に、「Open Alpha」アカウントはプレビューとして3日間しか使用できません)。
AUTO_INCREMENT
の正しい値を保存し、内部値に頼るのではなく、その値を使用して問題を修正しました。 InnoDBに実際の最後の値を記憶させる実際の方法はありますか?
ではなくアカウントレコードの削除を持っている「ユーザ#11」に名前を変更し、「設定しないことをねじ込みますその上に「削除済み」フラグがありますか?その後、参照整合性を維持し(FKを使用することもできます)、IDが再利用される心配はありません。 –