注: この記事はすべて 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 開発環境を構成する
今日、CSDN の Q&A セクションで友人が質問をしているのを見ました。彼は 1 次元配列...
みなさんこんにちは。今日は、純粋な CSS を使用して Google マテリアル デザインのテキスト...
目次1. テーブルを作成する1.1. テーブルを作成するための基本構文1.1.1. シンプルなテーブ...
目次使用EsLintの使用プロフィールを追加するPrettierの使用huskyとlint-stag...
ブロック要素p - 段落テキストの事前フォーマットテーブルol - ソートフォームul - 順序なし...
mysql が正常に実行されている場合、テーブル構造を表示することは難しくありません。しかし、場合...
目次1. 背景2. テーブル作成ステートメントとデータ挿入テーブルを作成するデータの挿入3. ウィン...
opencv2 の簡単なインストール: conda インストール --channel https:/...
目次1.同時アクセス制御2. 取引1. トランザクションは ACID 原則に従います。 2. トラン...
目次序文1. 問題の原因2. 解決策VueはelementUIテーブルtr thの高さと背景色を変更...
この記事では、Vue3.0の手書きカルーセル効果の具体的なコードを参考までに共有します。具体的な内容...
今日ご紹介したいのは、ネイティブ JS を使用してプログレス バーをドラッグし、要素の透明度を変更す...
この記事は主にMybatisでの動的SQL文の解析について紹介します。この記事のサンプルコードは非常...
目次概要1. グローバル登録2. 現地登録3. モジュールシステムへのローカル登録概要コンポーネント...
目次1. JavaScriptの問題2. TypeScriptの利点3. TypeScriptの欠点...