注: この記事はすべて 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 開発環境を構成する
これまでに CSS の基本的なセレクターをいくつか学習しましたが、今日は CSS の複雑なセレクター...
目次1. 通常どのようなコンテンツを処理する必要があるか2. 基本的な考え方3. 具体的な実践の詳細...
目次umask umaskの使用法原理1. umask値2. ファイルディレクトリの最大権限3. 従...
VC6.0は確かに古すぎるVC6.0は昔の開発ツールです。現在のwin10では対応していません。しか...
フォームを作成するときに、送信ボタンとリセットボタンを配置することがよくあります。ページの外観を考慮...
別のライブラリから別のライブラリにデータをインポートする必要がある場合があり、このデータは CSV ...
この記事では、MySQL で find_in_set() 関数を使用して where in() の順...
目次序文1. スケーラビリティとは何ですか?スケールアウトの利点:スケールアウトのデメリット:スケー...
この記事では、弾幕効果を実現するためのjQueryの具体的なコードを参考までに共有します。具体的な内...
目次序文1. マルチレベルのデータとイベントの配信には$attrsと$listenersを使用する2...
Windows サーバー リモート デスクトップのデフォルトのポート番号は 3389 です。職場でサ...
W3C の原則によれば、XML の各開始タグには対応する終了タグが必要です。つまり、<html...
アクセス数が増えると、MySQL データベースへの負荷が増大します。MySQL アーキテクチャを使用...
例えば: <link rel="スタイルシート" href="h...
例:例として、Python コード loop_hello.py を使用します。このコードは、ループ回...