ホームページ >データベース >mysql チュートリアル >テーブルをロックしたり同時更新を中断したりせずに、MySQL の「ALTER TABLE」オペレーションを実行するにはどうすればよいですか?
テーブルをロックしない ALTER TABLE
MySQL で ALTER TABLE 操作を実行すると、テーブルは、ステートメントを使用すると、同時書き込みがブロックされる可能性があります。この操作を大きなテーブルに対して実行すると、INSERT または UPDATE ステートメントが長期間中断される可能性があります。進行中の更新に影響を与えずに「ホット変更」を実行する解決策はありますか?
唯一の代替案: 手動操作
MySQL にはホット変更の直接サポートがありませんが、多くの RDBMS システムが自動的に実行する機能を手動で複製する代替手段が存在します。これには以下が含まれます:
技術的考慮事項:
新しいフィールドを追加すると、テーブル内のすべての行が効果的に変更されます。このプロセスでは、より大きな影響を与える大規模な UPDATE 操作と同様に、ディスク上のデータを物理的に再構築する必要があります。フィールド レベルのロックは行レベルのロックよりも複雑で、テーブル全体のロックが常に望ましいとは限りません。
その他の RDBMS ソリューション:
MySQL はそうでない場合がありますが、ホット変更をネイティブにサポートする場合、他の RDBMS システムがそのような機能を提供する場合があります。たとえば、PostgreSQL ではパーティション分割されたテーブルが可能で、他のパーティションに影響を与えることなく個別に変更できます。
以上がテーブルをロックしたり同時更新を中断したりせずに、MySQL の「ALTER TABLE」オペレーションを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。