tencent cloud

フィードバック

大きなテーブルの非同期削除

最終更新日:2023-02-22 16:19:17

    機能の説明

    この機能は主にデータファイルの大きなテーブルを削除し、IOのジッターを防止するために用いられます。

    DROP TABLEは、元のデータベースファイル(.ibd)を新しい臨時ファイルに再命名して、成功が返されます。臨時ファイルはinnodb_async_drop_tmp_dirにより指定されるディレクトリに保存され、バックグラウンドでバッチでtruncateします。truncateされるファイルサイズはinnodb_async_truncate_sizeによって制御されます。テーブルの非同期削除機能の有効化はinnodb_async_truncate_work_enabledパラメータによって制御されます。

    この機能はユーザーにより操作する必要はなく、カーネルにより自動的に実行されます。テーブル削除の際に、他のディレクトリでテーブルのデータファイルにハード接続を作成することで実現できます。drop table実行後、このファイルのハード接続のみが削除されます。その後、バックグラウンドスレッドのスキャンによってハード接続のディレクトリの中に削除すべきファイルがあると分かり次第、先ほどdropされたテーブルデータファイルをバックグラウンドで自動的にtruncateします。

    サポートするバージョン

    • カーネルバージョン MySQL 5.6 20220303以降
    • カーネルバージョン MySQL 5.7 20190203以降
    • カーネルバージョン MySQL 8.0 20200630以降

    ユースケース

    この機能は削除しようとするテーブルデータファイルが非常に大きいケースに適しています。

    利用説明

    • MySQL 5.6、5.7バージョンでは、innodb_async_truncate_work_enabledをONに設定すると、DROP TABLEが非同期方式に変更されます。デフォルトではOFFになっています。
    • MySQL 8.0バージョンでは、innodb_table_drop_modeをASYNC_DROPに設定すると、DROP TABLEが非同期方式に変更されます。デフォルトではSYNC_DROPになっています。
    • truncateするたびのファイルの大きさはinnodb_async_truncate_sizeによって制御されます(MySQL 5.6バージョンは現在サポートされません)。
    • innodb_fast_ddlパラメータをオンにすると、大きなテーブルの非同期削除能力がより効果的になります。
    パラメータ名動的タイプデフォルトパラメータ値範囲説明
    innodb_async_truncate_work_enabledYesstringOFFON/OFF大きなテーブルの非同期削除をオンにするかどうか。
    説明:

    ユーザーは現在、上記パラメータのパラメータ値を直接変更することはできません。変更する場合は、チケットを提出から変更することができます。

    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)