注: この記事はすべて Innodb ストレージ エンジンに基づいています。 1. MySQL ではなぜ自動インクリメント列 ID を主キーとして設定することを推奨しているのですか?
要約すると、自動インクリメント列を主キーとして使用すると、アクセス効率が最高になります。 2. 自動インクリメント列 ID は必ず連続している必要がありますか? 自動増分 ID の増分は必ずしも連続的ではありません。 まず、MySQL の自動インクリメント値の保存戦略を見てみましょう。
自動増分 ID が不連続になる原因となる状況としては、次のようなものが考えられます。
3.自動増分IDに上限はありますか? 自動インクリメント ID は整数フィールドです。成長 ID を定義するために int 型を使用することが多いのですが、int 型には上限があるため、成長 ID にも上限があります。 次の表に、int および bigint フィールド タイプの範囲を示します。
上記の表から、自動インクリメントフィールドが int signed 型を使用する場合、最大値は 2147483647 に達し、21 億を超え、int unsigned 型を使用する場合、最大値は 4294967295 に達し、42 億を超えることがわかります。もちろん、bigint はより広い範囲を表すことができます。 次に、自動インクリメント ID が最大値に達し、データを再度挿入すると何が起こるかをテストします。 create table t(id int unsigned auto_increment primary key) auto_increment=4294967295;insert into t values(null);// 行 4294967295 が正常に挿入されましたshow create table t;/* CREATE TABLE `t` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=4294967295;*/ insert into t values(null);//キー 'PRIMARY' のエントリ '4294967295' が重複しています 実験から、自動インクリメント ID が最大値に達すると、拡張できないことがわかります。最初の挿入ステートメントでデータが正常に挿入された後、このテーブルの AUTO_INCREMENT は変更されず (4294967295 のまま)、2 番目の挿入ステートメントで同じ自動インクリメント ID 値が取得されます。挿入ステートメントを再度実行しようとすると、主キーの競合エラーが報告されます。 4. 自動インクリメント列をどのように維持すればよいですか? メンテナンスに関しては、次の 2 つの提案が提供されています。
上記は、MySQL 自動増分 ID について知っておく必要のある詳細です。MySQL 自動増分 ID の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Ubuntu 20.04 LTS で Java 開発環境を構成する
導入この記事では、Ubuntu 18.04 デスクトップ システムでディスクを目的のディレクトリにマ...
1: タグセレクタータグセレクターはすべてのタグに使用されます。ここでは p を例に挙げます。つまり...
コードをコピーコードは次のとおりです。 <iframe id="myFrameId&...
フォームの送信方法をまとめると次のようになります。 1. 送信ボタンを使用して送信します。送信ボタン...
私たちの生活、仕事、勉強において、ソーシャル ネットワークは徐々に将来のインターネット発展のトレンド...
需要シナリオ: 既存の PXC 環境には大量のデータがあります。新しく購入したサーバーをこのクラスタ...
iPad でページをデバッグするにはどうすればいいですか? iOS 5 をご利用の場合、iPad の...
1. レンダリングJD効果シミュレーション効果 2. 原則高さと幅が0のボックスを用意しますこのボ...
Mongodb には db.serverStatus() コマンドがあり、これを使用して Mongo...
Web ページのデザインに関する質問です。すべてに答えられるでしょうか? 1. 単一選択の質問 (...
序文Vuex を使用すると、ストア内に「ゲッター」を定義できます (これはストアの計算されたプロパテ...
この記事の例では、フルスクリーンスクロールを実現するためのjQueryの具体的なコードを参考までに共...
背景レプリケーションはデータの完全なコピーです。レプリケーションが必要な理由として、まず思い浮かぶの...
今日、Ubuntu 用の小さなツールを顧客に送りましたが、ユーザーはそれを受け取った後、実行できませ...
この記事では主に、Vue でシンプルな無限ループスクロールアニメーションを実装し、みんなで共有する例...