文章オンライン DDL は MySQL 5.6 でのみサポートされています。バージョン 5.5 以前では、alter table/create index などのコマンドを使用してテーブル構造を変更するとテーブルがロックされますが、これは明らかに実稼働環境では受け入れられません。 MySQL 5.7では、オンラインDDLはパフォーマンスと安定性の面で継続的に最適化されています。パフォーマンス上の利点が大きく、業務負荷への影響が少なく、ダウンタイムを制御できます。pt-osc/gh-ostと比較して、サードパーティの依存パッケージのインストールは不要です。また、インプレースアルゴリズムのオンラインDDLもサポートしています。テーブルをコピーする必要がないため、必要なディスク容量も小さくなります。 まず、一般的な DDL ステートメントを見てみましょう。 ALTER TABLE tbl_name ADD PRIMARY KEY (列)、ALGORITHM=INPLACE、LOCK=NONE; このうち、LOCK は DDL 操作時の同時実行の度合いを記述し、ALGORITHM は DDL の実装方法を記述します。 LOCKパラメータ
アルゴリズムパラメータ
COPY TABLE プロセス
同時に、この処理中にデータの一貫性を保つために、中間データのコピー(Copy Table)中はテーブルがロックされ、読み取り専用になります。書き込み要求が来た場合、サービスが提供できなくなり、接続数が爆発的に増加します。 IN-PLACEプロセス
このプロセスでは、ALTER ステートメントは開始時に MDL 書き込みロックを取得しますが、この書き込みロックは、データが実際にコピーされる前に読み取りロックに退化します。つまり、最も時間のかかる一時ファイルにデータをコピーするプロセス中に、元のテーブルを DML で操作できます。ロックされるのは、古いテーブルと新しいテーブル間の最終切り替えフェーズ中のみです。この名前変更プロセスは非常に高速です。 DMLとDDLの同時操作を許可する
オンライン DDL は、コストが高いとマークされた操作には使用できますが、サーバーの IO と CPU に大きな負荷がかかります。また、レプリケーションのブロックも発生し、スレーブ レプリケーションの遅延という別の形を引き起こします。したがって、テーブルが大きい場合は、オフピーク時に実行することをお勧めします。 同時DMLを許可しないDDL操作
上記はMySQL Online DDLの使用に関する詳細な説明の詳細な内容です。MySQL Online DDLの使用に関する詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
>>: Javascript サンプル プロジェクトでの虫眼鏡効果の実装プロセス
最近、プロジェクトで写真をアップロードする要件があるのですが、顧客がアップロードする写真のサイズがま...
Ubuntu は、Linux をベースにした無料のオープンソース デスクトップ PC オペレーティン...
はじめに: プロジェクトを開発するために、サーバーに MySql データベース サーバーを展開し、ロ...
Docker は多くのスペースを占有します。コンテナを実行したり、イメージを取得したり、アプリケー...
yum install mysql-serverと入力します。続行するにはYを押してくださいインスト...
序文この記事は主に、MySQL の Innodb で 2T の大きなテーブルをすばやく削除する方法に...
目次条件付きコンパイルページレイアウト要約する条件付きコンパイル条件付きコンパイルでは、特別なコメン...
表は以下のとおりです。 HTMLソースコード結果を表示説明する< <未満記号また...
目次補間式方法計算された要約する今日は、Vue の計算プロパティについてお話ししましょう。計算プロパ...
1. HTML 画像 <img> 1. <img> タグとその src 属性...
ソフトウェアバージョンウィンドウズ: ウィンドウズ10 MySQL: mysql-8.0.16-wi...
目次序文インタフェースタイプ付録: インターフェースとタイプの違い要約する序文インターフェースとタイ...
<br />ウェブサイトを科学的にデザインする: アイトラッキング研究から学ぶ 23 の...
この記事では主に、echart を使用してパーセンテージを表示する Vue の円グラフデータ部分を紹...