MySQL の大きなデータ テーブルにフィールドを追加する方法

MySQL の大きなデータ テーブルにフィールドを追加する方法

序文

フィールドの追加は誰でもよく知っていると思います。簡単に記述できます。MySQL テーブルにフィールドを追加するには、次の SQL を実行するだけです。

ALTER TABLE tbl_tpl ADD title(255) DEFAULT '' COMMENT 'Title' AFTER id;

ただし、オンライン テーブルに大量のデータがある場合、フィールドを追加するとテーブルがロックされます。このプロセスには長い時間がかかったり、サービスがクラッシュしたりする可能性があるため、この操作は非常に危険です。

したがって、大きな MySQL テーブルにフィールドを追加するアイデアは次のとおりです。

① 一時的な新しいテーブルを作成し、まず古いテーブルの構造(インデックスを含む)をコピーします

old_table のようなテーブル new_table を作成します。

②新しいテーブルに新しいフィールドを追加する

③ 古いテーブルからデータをコピーする

新しいテーブルに挿入(フィールド1、フィールド2…) 古いテーブルからフィールド1、フィールド2、…を選択

④ 古いテーブルを削除し、新しいテーブルの名前を古いテーブルの名前に変更します。

ただし、3 番目のステップを実行する場合、このプロセスにも時間がかかる可能性があることに注意してください。このとき、新しいデータが入ってくるので、元のテーブルにデータが書き込まれた時間を記録するフィールドがあるのが最適です。このステップを実行した後、データを見つけて、データの差が非常に小さくなるまで繰り返し新しいテーブルにインポートすることができます。ただし、ごく少量のデータが失われる可能性があります。

したがって、テーブル内のデータが特に大きく、データの整合性を保証する必要がある場合は、操作をシャットダウンするのが最善です。

別の方法:

1. スレーブデータベースにフィールドを追加し、マスターとスレーブを切り替える

2. サードパーティのオンラインフィールド変更ツールを使用する

一般的に、数十万のデータ量の場合は、フィールドを直接追加できます。

要約する

上記は、大規模な MySQL テーブルにフィールドを追加する実装のアイデアです。この記事の内容が、皆さんの勉強や仕事に役立つことを願っています。ご質問がある場合は、メッセージを残してコミュニケーションを取ることができます。

以下もご興味があるかもしれません:
  • MYSQLは.frmを使用してデータテーブル構造を復元します
  • MySQLでテーブル構造をコピーする方法の概要
  • MySQL テーブル構造変更コマンドの概要
  • MySQL でテーブル構造を変更する方法の詳細な例
  • MySQLのテーブル構造を変更する際に注意すべき点
  • テーブル構造とテーブルデータをコピーするMySQLの方法
  • テーブル構造を変更するmysql alter tableコマンドの例
  • MySQL データ ソース テーブル構造図
  • MySQLのテーブル構造を変更する際に知っておきたいメタデータロックの詳しい解説
  • MySQL でストアド プロシージャを作成し、データ テーブルに新しいフィールドを追加する方法の分析
  • 特定のフィールド分類に従って出力されるmysqlデータテーブル
  • MySQLデータテーブルの基本操作:テーブル構造の操作、フィールド操作例の分析

<<:  node-media-serverを使用してシンプルなストリーミングメディアサーバーを構築する

>>:  Linux サーバーに埋め込まれた ddgs および qW3xT.2 マイニング ウイルスの対処の実践記録

推薦する

docker で golang イメージに基づいて ssh サービスを構築する方法

以下は、docker の golang イメージに基づいて ssh サービスを構築するためのコードで...

Linux の cut コマンドの説明

Linux や Unix の cut コマンドは、ファイルの各行から一部を切り取って標準出力に出力す...

実務経験7年のフロントエンドスーパーバイザーによる経験共有

今日はベテランの貴重な経験を共有します。著者は技術管理の経験が7年あり、多い時は80人以上を率いてい...

Linux での GDB 入門チュートリアル

序文gdb は Linux で非常に便利なデバッグ ツールです。コマンドライン モードのデバッグ ツ...

Vueモバイル端末が指のスライド効果を実現

この記事の例では、Vueモバイル端末で指のスライド効果を実現するための具体的なコードを紹介します。具...

MySQL DATEDIFF 関数を使用して 2 つの日付間の時間間隔を取得する方法

説明する2 つの日付間の時間間隔を返します。文法DateDiff(間隔、日付1、日付2 [、週の最初...

WeChat アプレット学習 WXS 使用方法チュートリアル

wxsとは何ですか? wxs (WeiXin Script) は、小規模プログラム用のスクリプト言語...

CSSはletter-spacingプロパティを通じて単語間の間隔を制御します。

letter-spacing プロパティ: 文字間のスペース (文字間隔) を増減します。このプロ...

Vueでデータを読み取るためにこれを悪用しないでください

目次序文1. これを使用してデータ内のデータを読み取るプロセス2. Dep.target はいつ存在...

MySQL における悲観的ロックと楽観的ロック

リレーショナル データベースでは、悲観的ロックと楽観的ロックがリソース同時実行シナリオのソリューショ...

Svelte の Defer Transition を Vue で実装する方法

最近、Rich Harris の <Rethinking Reactivity> ビデオ...

WindowsでiTunesのバックアップパスを変更する方法

0. 準備: • iTunesを閉じる• タスクマネージャーでiTunesから始まるサービスを終了し...

MySQL 8.0.18 のインストールと設定方法のグラフィックチュートリアル (Windows 10 版)

この記事は、参考のためにMySQL 8.0.18のインストールと設定のグラフィックチュートリアルを記...

MySQL の集計関数 count の使用法とパフォーマンスの最適化テクニック

この記事の環境はWindows 10、MySQLのバージョンは5.7.12-logです1. 基本的な...

Linux での Hbase のインストールと設定のチュートリアル

目次Linux での Hbase のインストールと設定1. Hbaseインストールパッケージをダウン...