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

推薦する

CocosCreator 入門チュートリアル: ネットワーク通信

ネットワーク通信の概要オンライン ゲームを開発する場合、必然的にネットワーク通信に対処する必要があり...

Linux での screen コマンドの使用方法の詳細な説明

GUNスクリーン:公式サイト: http://www.gnu.org/software/screen...

Vueナンバープレート入力コンポーネントの使い方の詳しい説明

参考までに、シンプルなナンバープレート入力コンポーネント(vue)です。具体的な内容は次のとおりです...

Linuxルートの初期値を設定する方法の簡単な分析

Ubuntu ではデフォルトで root ログインが許可されていないため、初期の root アカウン...

MySQL 接続とコレクションの簡単な分析

結合クエリ結合クエリとは、2 つ以上のテーブル間のマッチング クエリを指し、一般的には水平操作と呼ば...

Linux での MySQL のアンインストールとインストールのグラフィック チュートリアル

ブログを書くのは初めてです。開発に携わって2年になります。仕事の後に何か有意義なことを見つけたいと思...

Vueプロジェクトのフロントエンドを最適化およびパッケージ化するための必須のボーナスアイテム

目次序文1. ルーティングの遅延読み込み1. ルートの遅延読み込みが必要なのはなぜですか? 2. ル...

HTML で相対パスを使用してディレクトリのすべてのレベルのファイルを取得する方法の詳細な説明

相対パスの概念現在のファイルの場所を参照ポイントとして使用して、ターゲット ファイルへのパスを確立し...

Vue における属性とプロパティの具体的な使用法と違い

目次Vue.jsにおける属性とプロパティ値および関連する処理として属性とプロパティの概念属性とプロパ...

Vue 父子価値移転、兄弟価値移転、子父価値移転の詳細な説明

目次1. 親コンポーネントが子コンポーネントに値を渡す1. 親コンポーネント.vue 2. サブコン...

Centos6にMysql5.7をインストールする方法

環境セントロス6.6 MySQL 5.7インストールシステムがインストールされている場合は、まずアン...

Nginxの書き換えモジュールの詳細な説明

書き換えモジュールは ngx_http_rewrite_module モジュールです。その主な機能は...

Ubuntu でホームディレクトリを新しいパーティションに移行する詳細なチュートリアル

ユーザーのホーム ディレクトリがどんどん大きくなってきたら、ホーム ディレクトリを新しいパーティショ...

88 秒で 1,000 万件のレコードを MySQL データベース テーブルに挿入する方法

私が使用しているデータベースはMySQLデータベースバージョン5.7ですまずデータベーステーブルを自...

Vue を使用して CSS トランジションとアニメーションを実装する方法

目次1. トランジションとアニメーションの違い2. Vueを使用して基本的なCSSトランジションとア...