sql >> データベース >  >> RDS >> Mysql

auto_increment数にギャップがないことを確認するにはどうすればよいですか?

    まず、完全に問題ありません これらのギャップを持っています。 問題ありません 。これらの数字はパターンに従わなければならないと思わせるのはあなたの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つの仕事だけがあります-ユニークを生み出すために 数字。



    1. mysqlクエリ結果を目的の形式にフォーマットします

    2. PowerShellを使用してパラメーターのデフォルト値を解析する–パート3

    3. MySQL比較データベース

    4. Oracle SQL Developerでクエリ結果をcsvにエクスポートするにはどうすればよいですか?