面接では、次のようなシナリオを経験する必要があります。
この質問はファンから聞いたのですが、 文章 シンプルバージョン まず、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ミニゲームを実装する詳細なプロセス
MySQL では、LOAD_FILE() 関数はファイルを読み取り、その内容を文字列として返します。...
コラムを更新してからどれくらい経ったでしょうか?半年ですか?今年の後半は、まさに離陸、つまり文字通り...
1. Iframe タグの使用<br />Iframe については、「忘れられた隅」に放...
目次1. セットアップ1. セットアップ関数の最初のパラメータ - props 2. 文脈2. セッ...
ウェブページを画像としてキャプチャする新機能があったので、人気のhtml2canvasを使ってみまし...
この記事では、トランザクション、インデックス、ロックなどの MySQL の知識ポイントの原理と使用法...
FastDFSとNginxの統合:トラッカーは、負荷分散と高可用性のために Nginx と組み合わせ...
目次1. MySQLのコンパイルとインストール: 2. 最初のマルチインスタンス3307を準備する3...
目次Docker を使用する理由は何ですか? DockerのインストールROSイメージを取得するRO...
フォームの送信方法をまとめると次のようになります。 1. 送信ボタンを使用して送信します。送信ボタン...
この記事では主に、フォント読み込みの最適化に関する一般的な戦略を紹介します。内容の大部分は参考資料と...
目次1. psutilパッケージをインストールする次に、オペレーティングシステム内のすべてのサービス...
序文InnoDB はデータをテーブルスペースに保存します。デフォルト設定では、初期サイズが 10 M...
Vueはパンくずコンポーネントをカプセル化して参照します。具体的な内容は次のとおりです。効果を達成す...