1

特定のテーブルの 1 つに新しい UNIQUE ID (primary_key) を追加する 3 つのオプションがあります。

  1. AUTO_INCREMENT フィールドを作成します。
  2. SELECT id FROM table ORDER BY id DESC LIMIT 1
  3. SELECT MAX(id) FROM テーブル

アクセスするテーブルから行を削除する可能性があるため、現在オプション2を使用しているため、ID が解放されます。それ以外の場合は、オプション1を使用します

あなたは何をお勧めしますか?

4

3 に答える 3

3

常にオプション 1 を使用する必要があります (どちらかが挿入を完了する前に 、2 つの同時挿入クライアントが現在の最大値を読み取るという競合の危険を回避するため)。読み取りおよび書き込み操作をアトミックにするロックを使用して、この危険の発生を防ぎます。idAUTO_INCREMENT

于 2012-10-09T08:03:46.690 に答える
1

オプション1

自動増加

これは、実装および維持する最も簡単な方法です

于 2012-10-09T07:58:17.723 に答える
1

DB シーケンスを作成して代わりに使用すると、複数のスレッドがアクセスするシナリオや、分散環境、およびクラスター化された環境でも、はるかに便利になります。

于 2012-10-09T08:09:02.020 に答える