4

100万レコードのテーブルがあります。私のクエリは1つの列(32個の定数)に基づいてメールで送信されます。タイプリストを使用して32個のパーティションを追加しようとしています。

アプリケーションを停止できません。その間にレコードが挿入されますか?テーブルにパーティションを追加できますか?それは私のアプリケーションに影響を与えますか?パーティションの間にいくつかの行をロックするなど。

インターネットを検索しましたが、既存のテーブルにパーティションを追加するという話であまり多くの資料が見つかりませんでしたか?

ありがとうございました。

4

1 に答える 1

5

アプリケーションに影響を与えることなく、このようなテーブルの移行を行う一般的な方法は、次の手順に従うことです。

  1. 必要なリビジョンを含む複製テーブルを作成します (この場合はパーティション)
  2. 元のテーブルにトリガーをセットアップして、複製されたテーブルに挿入します (これは、短期間のレプリケーションの形式として機能します)。
  3. アプリケーションを妨げない速度で、元のテーブルから新しいテーブルへの移行を開始します (たとえば、一度に 1000 行)。
  4. 移行が完了すると、テーブルが完全に同期されます。この時点で、新しいテーブルを使用して読み取りと書き込みを開始するようにアプリケーションを変更します。
  5. 新しいテーブルを使用してアプリが機能することに満足したら、古いテーブルを削除します。
  6. 移動が完了しました。ビールを飲みましょう。
于 2013-07-20T02:52:13.167 に答える