まず、完全に問題ありません これらのギャップを持っています。 問題ありません 。これらの数字はパターンに従わなければならないと思わせるのはあなたのOCDだけです-彼らはそうしません。
-
auto_increment
PHPの機能ではなく、MySQLの機能です -
auto_increment
すべての行が一意になるようにします 番号。連番は扱いません -
auto_increment
コンカレント環境で安全に動作します。つまり、MySQLに接続して何かをしているユーザーがたくさんいて、すべてのユーザーがデータベースを処理でき、行を識別するために同じIDを取得できないようにする必要があります。これはかなり複雑なプロセスを通じて行われ、これがauto_increment
の理由の1つです。 ギャップが生じる -
auto_increment
InnoDB
によって使用されます ディスク上のレコードを物理的に整理する場合-auto_increment
の機能を使用します そして、その1つは、以前よりも大きい数を生成しています(これは、以前よりも大きく、連続していないことです)。これを使用して、bツリーが構築され、レコードがハードドライブに順番に書き込まれます。auto_increment
の改ざんInnoDB
を作成します ツリーのバランスを取り直します。それは、レコードを調べて、それを台無しにした場合にインデックスを再作成することを意味します-それはあなたが望まないことです。これまで
あなたがそれについて考えるとき、あなたは連番で何を得るのですか?想像上の秩序があるので、おそらく脳の痛みが少ないことを除いて、実際には何もありません。
連番の場合は、トリガーを使用して作成します。 auto_increment
1つの仕事と1つの仕事だけがあります-ユニークを生み出すために 数字。