Todos los productos
Search
Centro de documentos

ApsaraDB RDS:Purge Large File Asynchronously

Última actualización: Sep 03, 2026

AliSQL ofrece la función Purge Large File Asynchronously para mejorar la estabilidad de su servicio de base de datos.

Contexto

Si ejecuta la sentencia DROP TABLE para eliminar datos, el archivo de datos de InnoDB correspondiente se elimina directamente del sistema de archivos. Si este archivo es grande, su eliminación provoca problemas graves de estabilidad en el sistema de archivos POSIX (Portable Operating System Interface). La función Purge Large File Asynchronously inicia un hilo que elimina el archivo de datos de forma asíncrona. Al ejecutar la sentencia DROP TABLE, el archivo de datos correspondiente se guarda como archivo temporal y se inicia un hilo para eliminarlo de manera asíncrona y gradual.

Procedimiento

  1. Ejecute la siguiente sentencia para consultar la configuración de variables globales de su instancia RDS:

    SHOW GLOBAL VARIABLES LIKE '%data_file_purge%';

    A continuación se muestra un ejemplo del resultado de la consulta:

      +----------------------------------------+-------+
      | Variable_name                          | Value |
      +----------------------------------------+-------+
      | innodb_data_file_purge                 | ON    |
      | innodb_data_file_purge_all_at_shutdown | OFF   |
      | innodb_data_file_purge_dir             |       |
      | innodb_data_file_purge_immediate       | OFF   |
      | innodb_data_file_purge_interval        | 100   |
      | innodb_data_file_purge_max_size        | 128   |
      | innodb_print_data_file_purge_process   | OFF   |
      +----------------------------------------+-------+

    La siguiente tabla describe las variables globales.

    Variable

    Descripción

    innodb_data_file_purge

    Indica si se habilita la función Purge Large File Asynchronously.

    innodb_data_file_purge_all_at_shutdown

    Indica si se eliminan todos los archivos al apagar el host donde reside su instancia RDS.

    innodb_data_file_purge_dir

    Directorio donde se almacenan los archivos temporales.

    innodb_data_file_purge_immediate

    Indica si se conservan los archivos de datos y solo se revocan sus vínculos.

    innodb_data_file_purge_interval

    Intervalo de eliminación de archivos. Unidad: milisegundos.

    innodb_data_file_purge_max_size

    Tamaño máximo de un solo archivo que puede eliminarse. Unidad: MB.

    innodb_print_data_file_purge_process

    Indica si el sistema muestra una barra de progreso durante la eliminación de archivos.

    Nota

    Se recomienda utilizar la siguiente configuración:

    set global INNODB_DATA_FILE_PURGE = on;
    set global INNODB_DATA_FILE_PURGE_INTERVAL = 100;
    set global INNODB_DATA_FILE_PURGE_MAX_SIZE = 128;
  2. Ejecute la siguiente sentencia para consultar el progreso de eliminación de archivos:

    select * from information_schema.innodb_purge_files;

    A continuación se muestra un ejemplo del resultado de la consulta:

    +--------+---------------------+--------------------+---------------+-------------------------+--------------+
    | log_id | start_time          | original_path      | original_size | temporary_path          | current_size |
    +--------+---------------------+--------------------+---------------+-------------------------+--------------+
    |      0 | 2021-05-14 14:40:01 | ./file_purge/t.ibd |     146800640 | ./#FP_210514 14:40:01_9 |     79691776 |
    +--------+---------------------+--------------------+---------------+-------------------------+--------------+

    La siguiente tabla describe los parámetros del resultado devuelto.

    Parámetro

    Descripción

    start_time

    Momento en que inicia la eliminación.

    original_path

    Ruta original de la carpeta donde se almacenaban los archivos de datos antes de su eliminación.

    original_size

    Tamaño original de los archivos de datos antes de su eliminación. Unidad: bytes.

    temporary_path

    Ruta de la carpeta donde se almacenan los archivos temporales durante la eliminación.

    current_size

    Tamaño actual de los archivos temporales pendientes de eliminación. Unidad: bytes.