すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:自動フラグメント再利用

最終更新日:Nov 09, 2025

データベーステーブル内のデータを削除および更新すると、データがディスク上に非連続的に保存される可能性があります。これにより領域の断片化が発生し、ディスク領域の浪費やパフォーマンスの低下につながります。Database Autonomy Service (DAS) は、自動フラグメント再利用をサポートしています。インスタンスのメンテナンスウィンドウ中に、DAS はプライマリインスタンスで `Optimize Table` または `Alter Table` コマンドを自動的に実行し、表領域のフラグメントを再利用して領域の使用を最適化します。

前提条件

  • インスタンスは、High-availability Edition、Enterprise Edition、または Cluster Edition のいずれかのエディションを実行する ApsaraDB RDS for MySQL インスタンスです。

  • インスタンスが 14 日以上前に作成されていること。

  • インスタンスの CPU 仕様が 4 コア以上であること。

  • インスタンスの物理テーブルが InnoDB エンジンを使用していること。

背景情報

表領域の断片化の一般的な原因は次のとおりです。

  • レコードが削除され、元の領域を再利用できない。

  • レコードが更新され (通常は可変長フィールドで)、元の領域を再利用できない。

  • レコードの挿入によってページ分割が発生し、ページの充填率が低下する。

最適化前のチェック

DAS は、プライマリインスタンスで Optimize Table または Alter Table コマンドを実行して、表領域のフラグメントを再利用します。断片化したスペースの自動再利用 操作の前に、DAS はデータベースに対して次のチェックを自動的に実行し、データベースのパフォーマンスと領域への影響を最小限に抑えます。断片化したスペースの自動再利用 操作は、すべてのチェックに合格した後にのみ開始されます。

  • 次のいずれかのチェックが失敗した場合、対応するテーブルでの 断片化したスペースの自動再利用 操作は直ちに停止します。

    • インスタンスの利用可能な領域が、再利用するテーブルの物理空間の少なくとも 3 倍であること。

      説明

      たとえば、30 GB の物理空間を占有する Table_1 のフラグメントを再利用するには、データベースに少なくとも 90 GB の空き領域が必要です。

    • テーブルにフルテキストインデックス (FULLTEXT) がないこと。

  • チェックが失敗した場合、DAS は 1~5 分待ってから再実行します。メンテナンスウィンドウ内にチェックが合格しない場合、DAS は次のメンテナンスウィンドウ中に再試行します。チェックに合格すると、DAS は 断片化したスペースの自動再利用 を実行します。

    • インスタンスでバックアップジョブが実行されていないこと。

    • スキーマ進化操作が進行中でないこと。

    • DAS はインスタンスの CPU 使用率をチェックし、断片化したスペースの自動再利用 に必要な時間を推定します。前日および前週の同じ時間帯の CPU 使用率が 70% 未満であり、操作直前の CPU 使用率が 80% 未満であることを確認します。

      説明

      たとえば、テーブルが 90 GB の物理空間を占有し、フラグメントの再利用に 30 分かかると予想され、12 月 10 日の 03:00 に開始するようにスケジュールされている場合、次の条件を満たす必要があります。

      • 2020 年 12 月 9 日の 03:00 から 03:30 までの CPU 使用率が 70% 未満であること。

      • 2020 年 12 月 3 日の 03:00 から 03:30 までの CPU 使用率が 70% 未満であること。

      • 2020 年 12 月 10 日の 03:00 時点の CPU 使用率が 80% 未満であること。

    • ターゲットテーブルで実行に 3 秒以上かかる SQL 文が実行されていないこと。

    • 保留中のトランザクションが存在しないこと。保留中のトランザクションとは、ロックを保持しているが 15 秒以上コミットされていないトランザクションのことです。

    • インスタンスのアクティブなセッション数が 64 未満であること。

説明

チェックが失敗した場合、断片化したスペースの自動再利用 機能は使用できません。OPTIMIZE TABLE コマンドを手動で実行して、表領域のフラグメントを再利用できます。詳細については、「OPTIMIZE TABLE コマンドを使用して MySQL インスタンスの表領域を解放する」をご参照ください。

DAS の Alibaba Cloud Managed Services を有効にする

[自動フラグメント再利用] 機能を使用する前に、ターゲットインスタンスに対して DAS の Alibaba Cloud Managed Services を有効にする必要があります。このサービスがすでに有効になっている場合は、このセクションをスキップできます。

  1. DAS コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[Resource Management] > [インスタンス] をクリックします。

  3. [インスタンス] ページで、ターゲットインスタンスを見つけ、[マネージドサービス] 列の [有効化] をクリックします。

  4. 表示されたページで、[サブスクリプション期間] を選択し、[有効化] をクリックします。

自動フラグメント再利用

  1. [インスタンス] ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけ、インスタンスの ID をクリックします。

  2. 左側のナビゲーションウィンドウで、[自律サービス] > [クイック診断] > [自律センター] を選択します。[自律センター] ページで、[自律サービススイッチ] をクリックします。

  3. [自律サービス管理] > [自律サービス設定] タブで、自律サービスのメインスイッチを有効にします。次に、[最適化とスロットリング] タブで、[自動フラグメント再利用] を有効にします。

  4. [自動フラグメント再利用] を有効にした後、次のパラメーターを設定し、[OK] をクリックします。

    重要

    データベースインスタンスの領域ステータスが指定されたしきい値に達すると、DAS はデータベースインスタンスの O&Mウィンドウ 中に自動フラグメント再利用を実行します。

    パラメーター

    説明

    テーブルスペース >

    自動フラグメント再利用をトリガーする単一の物理テーブルの最小サイズ。値の範囲は 5 GB から 100 GB です。デフォルト値は 10 GB です。

    単一のテーブルが大きいと、再利用に時間がかかる場合があります。必要に応じて適切な値を選択してください。

    説明

    データベースインスタンス内のすべてのテーブルの表領域が 5 GB 未満または 100 GB を超える場合、システムはフラグメント再利用を実行しません。

    断片化率 (%) >

    自動フラグメント回収をトリガーする単一物理テーブルの断片化率。この値は 10 % から 99 % の範囲で指定でき、デフォルト値は 20 % です。

    高い断片化率は、領域最適化の頻度を減らします。必要に応じて適切な値を選択してください。

    説明

    データベースインスタンス内のすべてのテーブルの断片化率が 10 % 未満の場合、システムはフラグメント回収を実行しません。

    説明

    たとえば、テーブルスペース > を 5 GB に、テーブルスペース > を 10% に設定した場合、サイズが 5 GB から 100 GB で、断片化率が 10% 以上のすべてのテーブルに対して自動フラグメント再利用がトリガーされます。

  5. (オプション) [アラートテンプレート] を設定し、アラートをサブスクライブして、データベースインスタンスの [自動フラグメント再利用] ステータスに関する通知をタイムリーに受信します。

    システムはアラートテンプレートを推奨し、対応する自律イベントのアラートルールを追加します。プロンプトに従って設定を完了します。

    説明
    • インスタンスにアラートテンプレートがすでに設定されている場合は、プロンプトに従って、対応する自律イベントのアラートルールをテンプレートに追加します。

    • アラートテンプレートとアラートルールを自分で設定するには、「アラートテンプレートの設定」および「アラートルールの設定」をご参照ください。

    1. アラート通知を受信する [アラートグループ] を選択します。

      • [連絡先の追加] をクリックして、新しいアラート連絡先を追加します。

      • [連絡先グループの追加] をクリックして、新しいアラートグループを追加します。

      • 連絡先の横にある [変更] または [削除] をクリックして、連絡先の情報を変更または削除します。

      詳細については、「アラート連絡先の管理」をご参照ください。

    2. [リンクされたインスタンス] を確認します。

    3. [設定の送信] をクリックし、表示されるダイアログボックスでアラート設定を確認します。