ホームページ >データベース >mysql チュートリアル >パフォーマンスの問題を発生させずに MySQL データベースの名前を効率的に変更するにはどうすればよいですか?

パフォーマンスの問題を発生させずに MySQL データベースの名前を効率的に変更するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-14 06:01:10921ブラウズ

How to Rename a MySQL Database Efficiently Without Performance Issues?

パフォーマンスのボトルネックを作成せずに MySQL データベース (スキーマ) の名前を変更する

MySQL データベースの名前変更は、特に大規模なデータベースの場合、面倒な作業になる可能性があります。データをダンプしてから再インポートする従来の方法では、システムに負担がかかり、パフォーマンスに影響を与える可能性があります。

InnoDB データベースの段階的なソリューション

InnoDB データベースの名前を変更するには、次の点を考慮してください。アプローチ:

  1. 新しい空のデータベースの作成:希望の名前で新しいデータベースを作成します。
  2. データベース テーブルの名前変更: コマンドを使用して、古いデータベースから新しいデータベースに各テーブルを個別に転送します:

    RENAME TABLE old_db.table TO new_db.table;
  3. 権限の調整: テーブルを移動したら、権限を変更する必要があります。

自動化されたソリューション

シェル スクリプトでプロセスを自動化するには、次のコマンドのいずれかを実行できます:

  1. しばらく使用するループ:

    mysql -u username -ppassword old_db -sNe 'show tables' | while read table; \
    do mysql -u username -ppassword -sNe "rename table old_db.$table to new_db.$table"; done
  2. for ループの使用:

    for table in `mysql -u root -ppassword -s -N -e "use old_db;show tables from old_db;"`; do mysql -u root -ppassword -s -N -e "use old_db;rename table old_db.$table to new_db.$table;"; done;

追加考慮事項

トリガー: この方法を使用して、トリガーのあるテーブルをデータベース間で移動することはできません。

ストアド プロシージャ: ストアド プロシージャがある場合は、次のことを忘れないでください。後で、

mysqldump -R old_db | mysql new_db
を使用してコピーします。

以上がパフォーマンスの問題を発生させずに MySQL データベースの名前を効率的に変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。