面接では、次のようなシナリオを経験する必要があります。
この質問はファンから聞いたのですが、 文章 シンプルバージョン まず、MySQLではInt整数の範囲は次のようになることを理解しましょう。 符号なし整数を例に挙げてみましょう。保存範囲は 0 から 4294967295 で、約 43 億になります。まず、自動増分IDが最大値に達した後、データが挿入され続けると、主キー競合例外が次のように報告されるとします。
解決策も非常に簡単です。Int型をBigInt型に変更します。BigIntの範囲は次のとおりです。 たとえ1秒あたり1万件のデータ項目があり、それを100年間実行したとしても、1つのテーブル内のデータは
次に、面接官はもっと難しい質問をするかもしれません。
変更方法 現在、業界ではテーブル構造のオンライン変更に3つのソリューションがあります。私の知る限り、一般的には次の3つがあります。 方法1: MySQL 5.6以降が提供するオンライン変更機能を使用する MySQL 自体が提供するいわゆる関数は、MySQL 独自のネイティブ ステートメントです。たとえば、元のフィールド名とタイプを変更する場合などです。 mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type; MySQL 5.5 より前では、これは一時テーブルをコピーすることによって実現されていました。 図に示すように、データ型の変更などの操作では同時 DML 操作はサポートされていません。つまり、 その場合、方法2または方法3のみを使用できます 方法2: サードパーティツールを使用する 業界には、テーブル構造のオンライン変更をサポートできるサードパーティ ツールがいくつかあります。これらのサードパーティ ツールを使用すると、
1. 変更されたデータ テーブル構造を持つ新しいテーブルを作成します。このテーブルは、ソース データ テーブルから新しいテーブルにデータをインポートするために使用されます。 2. データがコピーされた後、ソース データ テーブルのデータの変更を継続する操作を記録するトリガーを作成します。データがコピーされた後、これらの操作を実行して、データが失われないようにします。 3. ソース データ テーブルから新しいテーブルにデータをコピーします。 4. ソース データ テーブルの名前を古いテーブルの名前に変更し、新しいテーブルの名前をソース テーブルの名前に変更して、古いテーブルを削除します。 5. トリガーを削除します。 しかし、実際にはこれら 2 つのツールは 上級バージョン 実際、上記の質問に答えると、この記事はほぼ完成します。しかし、最初に言ったことを思い出してください。これは非常に テーブル `t` を作成します ( `id` int(11) NOT NULL AUTO_INCREMENT, 主キー (`id`)、 ) 日本語 次のSQLを実行します t 値に挿入します(null); // 挿入された行は (1) です 始める; t 値に挿入します(null); ロールラック; t 値に挿入します(null); // 挿入された行は (3) です したがって、テーブル内の実 ID は必然的に不連続になります。 したがって、実際には、自動インクリメント主キーが使い果たされるまで待つことはできません。したがって、専門家の答えは次のようになります。
MySQL の自動インクリメント主キーが不足した場合の対処法についてはこれで終了です。MySQL の自動インクリメント主キーが不足した場合の対処法の詳細については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Dockerコンテナオーケストレーション実装プロセス分析
>>: WeChatアプレットに2048ミニゲームを実装する詳細なプロセス
序文Vuex を使用すると、ストア内に「ゲッター」を定義できます (これはストアの計算されたプロパテ...
公式の MySQL イメージを使用するには、構成ファイル、DB データ ファイル ディレクトリなどの...
ステートメント 1: <link rel="shortcut icon" ...
コンピュータに初めて MySQL をインストールする場合、通常このエラー メッセージは表示されません...
MySql のウィンドウ関数を使用して統計データを収集する際に、小さな問題が見つかったので、それにつ...
Flash での HTML と CSS の適用:同僚の Den が Flash で HTML と C...
目次1. 浅いコピー1. Object.assign(ターゲット、ソース、ソース...) 2. スプ...
目次1. 概要1.1 定義1.2 機能説明2. ELKを展開する2.1 ディレクトリとファイルを作成...
目次ガベージコレクション (GC) はなぜ必要なのでしょうか?ガベージコレクションとは廃棄物の発生ガ...
1. はじめにMySQL グループ レプリケーション (略して MGR) は文字通り MySQL グ...
目次1. 最も適切なフィールド属性を選択する2. フィールドをNOT NULLに設定してみる3. サ...
汎用ロード/書き込みメソッドオプションを手動で指定するSpark SQL の DataFrame イ...
1. MySQL で現在の時刻を表現するにはどうすればよいでしょうか?実際、表現方法はいろいろありま...
以下の内容では、隣接リストを使用してツリー構造を保存する MYSQL のプロセスとソリューションを紹...
序文最近、テスト環境で MySQL データベースが自動的に再起動し続ける問題が発生しました。原因は、...