12

私は約100のデータベース(すべて同じ構造で、異なるサーバー上にあります)を持っており、それぞれに約12のテーブルがあります。ほとんどのテーブルは小さいです(たとえば100MB以下)。テーブルが大きくなる場合があります(たとえば4GB以上)。

各データベースのほぼすべてのテーブルで一連のALTERTABLEコマンドを実行する必要があります。主に構造にいくつかの行を追加しますが、行をvarcharからtinytextに(またはその逆に)変更するなどのいくつかの変更があります。また、いくつかの新しいインデックスを追加します(ただし、既存の行ではなく、新しい行にインデックスを付けるため、大したことではないと仮定します)。

これがどれほど安全であるか、そしてこのプロセスにベストプラクティスがあるかどうか疑問に思っています。

まず、テーブル内のデータを破損または削除する可能性はありますか。いいえと思いますが、確実にする必要があります。

次に、より大きなテーブル(4GB +)の場合、これは数分から数時間のプロセスになる可能性がありますか?

学習したい本番データベースでALTERTABLEコマンドを実行するために知っておくべきことすべて。

価値があることがわかっている場合は、ほとんどの場合、PHPMYADMINを介してコマンドを発行することを計画しています。

ありがとう -

4

2 に答える 2

5

チェンジャーを適用する前に、まずバックアップを作成します。あなたがそれをすることができる2つの方法: mysqldumpすべてまたはあなたはあなたのmysqlデータフォルダをコピーすることができます。

次に、mysqlコマンドラインから使用することをお勧めします。PHPMyAdminはおそらくタイムアウトになります。ほとんどのPHPサーバーのタイムアウトは10分未満です。または、誤ってブラウザを閉じてしまいました。

于 2010-02-12T23:44:32.003 に答える
0

これが私の提案です。

  1. アプリをフェイルオーバーできます(すべてのデータベースに接続がないことを確認してください)。

  2. 「createindexstatements」を使用してインデックスを作成できます。altertableaddindexステートメントは使用しないでください。

  3. これらはすべて、次のようなスクリプトを使用して実行します(これらのステートメントはすべてファイルに保存し、ソースから実行します)。

  4. テーブルのサイズが非常に小さいように見えるので、頭痛の種にはなりません。

于 2013-02-06T15:53:05.507 に答える