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 マイニング ウイルスの対処の実践記録

推薦する

WeChatアプレットは写真アップロード機能を実現

この記事の例では、WeChatアプレットで写真をアップロードするための具体的なコードを参考までに共有...

サブセットかどうかを判断するためのMySQLメソッドの手順

目次1. 問題2. 解決策オプション1:オプション2: 1. 問題この話は、エラーと脱落率を照会する...

Linux CentOS 7.7 システムの VMware インストールに関する詳細なチュートリアル

Linux CentOS 7.7 システムを Vmware にインストールする方法。最小限のインスト...

HTML の rel 属性の分析

.y { background: url(//img.jbzj.com/images/o_y.pn...

HTML でテキストの折り返しを実装する例 (HTML でテキストと画像が混在)

1. 画像の周りのテキスト通常のものを使用する場合、たとえば次のようになります。コードをコピーコー...

Tomcat が localhost に通常アクセスすると 404 を報告する問題の解決方法

今日、プロジェクトのホームページにアクセスするために Tomcat を設定していたところ、404 エ...

MySQLファイルストレージの詳細な説明

ファイルシステムとは何かInnoDB や MyIASM などのストレージ エンジンはテーブルをディス...

HTML の一般的でないタグ optgroup、sub、sup、bdo のサンプルコード

Optgroup は、ドロップダウン リストのコンテンツをより整理するために、select タグで使...

Win10 での MySQL 8.0 ログインでユーザー 'root'@'localhost' のアクセスが拒否される (パスワード使用: YES) 問題の解決方法

最近、MySQL を学び始めました。インストールはスムーズに進み、インターネット上の既成のチュートリ...

Portainer を使用した Docker コンテナのデプロイのプロジェクト実践

目次1. 背景2. 操作手順3. Portinerをインストールする3.1 Dockerのデプロイメ...

MySQL はデータベースを動的に更新します スクリプト例の説明

具体的なupgradeスクリプトは次のとおりです。インデックスを動的に削除する アップグレードが存在...

Vue での bimface の使用に関する詳細

目次1. Vue スキャフォールディングをインストールする2. プロジェクトを作成する3.1 プロジ...

HTML でのフォームとフォーム送信操作に関する情報のコレクション

ここでは、フォーム要素とフォーム送信に関する知識を紹介します。フォーム要素フォーム要素の DOM イ...

elementui での el-cascader カスケードセレクタの実践

目次1. 効果2. メインコード1. 効果機能: インターフェイスから取得したデータを使用してオプシ...