Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Cómputo
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gestión y gobernanza
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migración
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análisis
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Otros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Seguridad y cumplimiento
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Situation Awareness
Managed Threat Detection
Blockchain
Blockchain Service
Servicios multimedia
Media Processing Center
Video On Demand
Live
SparkRTC
Almacenamiento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Contenedores
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bases de datos
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicaciones empresariales
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribución de contenido y cómputo de borde
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluciones
SAP Cloud
High Performance Computing
Servicios para desarrolladores
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
aPaaS MacroVerse
KooPhone
KooDrive
En esta página
Centro de ayuda/ TaurusDB/ Preguntas frecuentes/ Rendimiento de bases de datos/ ¿Cómo puedo usar el disco temporal de TaurusDB?

¿Cómo puedo usar el disco temporal de TaurusDB?

Actualización más reciente 2025-02-10 GMT+08:00

Los discos temporales de instancias de TaurusDB se utilizan para almacenar temporalmente tablas temporales, archivos temporales y cachés binlog generados durante el funcionamiento de la base de datos. En la consola de gestión, puede supervisar el espacio en disco temporal usado y el uso de disco temporal de la instancia en diferentes períodos de tiempo y granularidades en tiempo real, como se muestra en la siguiente figura.

Figura 1 Uso temporal del disco

Con la fluctuación de los servicios, puede encontrar que el uso de discos temporales aumenta repentinamente o continuamente. Para mejorar la disponibilidad y estabilidad de la base de datos, TaurusDB proporciona hasta 500 GB de espacio temporal en disco para una instancia de base de datos. El espacio temporal en disco es gratuito.

Para evitar que el uso temporal del disco aumente continuamente y alcance el límite superior, se recomienda comprobar los servicios lo antes posible en función del uso del disco consultado. En esta sección se describen los riesgos, los escenarios y la solución de problemas cuando los discos temporales están llenos.

Riesgos

  • Las sentencias SQL no se pueden ejecutar y no se devuelven resultados.
  • Las sentencias SQL ocupan recursos de bloqueo durante mucho tiempo y bloquean otras sentencias SQL. Como resultado, el número de conexiones aumenta o incluso alcanza el límite superior, afectando a otros servicios.
  • El número de archivos temporales en la caché de binlog alcanza el límite superior. La base de datos se descompone y tarda mucho tiempo en restaurarse, por lo que los servicios se interrumpen durante mucho tiempo.

Escenarios y solución de problemas

  1. Creación explícita de tablas de disco temporales
    • Escenario

      Ejecute la sentencia create temporary table para crear explícitamente tablas de disco temporales. Las tablas temporales cuyo motor de almacenamiento es InnoDB se almacenan en caché en el grupo de búferes y se vacían en los discos por subprocesos sucios.

      En TaurusDB, los datos de las tablas temporales de disco se almacenan en el espacio temporal de sesión (la ruta se especifica mediante el parámetro innodb_temp_tablespaces_dir), y los registros de deshacer se almacenan en el espacio temporal global (la ruta se especifica mediante el parámetro innodb_temp_data_file_path).

      Para evitar que las tablas de disco temporales ocupen demasiado espacio en disco, se recomienda eliminar las tablas de disco temporales innecesarias o desconectar las conexiones de base de datos innecesarias.

      AVISO:
      • Espacio de tabla temporal de sesión: Se recupera cuando se libera la conexión de base de datos actual.
      • Espacio de tabla temporal global: solo se recupera después de reiniciar la base de datos.
    • Resolución de problemas
      1. Vea información sobre las tablas temporales que creó en InnoDB.
        mysql> select * from information_schema.innodb_temp_table_info;
        +----------------------+---------------+--------+------------+
        | TABLE_ID             | NAME          | N_COLS | SPACE      |
        +----------------------+---------------+--------+------------+
        | 18446744069414584311 | #sqle055_24_0 |      5 | 4294502266 |
        +----------------------+---------------+--------+------------+
      2. Compruebe el uso de los archivos de tablas temporales de InnoDB.

        En una tabla, la columna ID indica el ID de la sesión que está utilizando el archivo de tabla temporal. Si el valor es 0, no se utiliza el archivo ibt. La columna SIZE indica el tamaño del archivo ibt, que aumenta automáticamente en función del uso y se recupera cuando finaliza la sesión. Si el valor de la columna PURPOSE es INTRINSIC, la tabla es una tabla temporal implícita. Si el valor de la columna PURPOSE es USER, la tabla es una tabla temporal explícita.

        mysql> select * from information_schema.innodb_session_temp_tablespaces;
        +----+------------+----------------------------+-------+----------+-----------+
        | ID | SPACE      | PATH                       | SIZE  | STATE    | PURPOSE   |
        +----+------------+----------------------------+-------+----------+-----------+
        | 31 | 4294502265 | ./#innodb_temp/temp_9.ibt  | 81920 | ACTIVE   | INTRINSIC |
        | 36 | 4294502266 | ./#innodb_temp/temp_10.ibt | 98304 | ACTIVE   | USER      |
        | 34 | 4294502264 | ./#innodb_temp/temp_8.ibt  | 81920 | ACTIVE   | INTRINSIC |
        |  0 | 4294502257 | ./#innodb_temp/temp_1.ibt  | 81920 | INACTIVE | NONE      |
        |  0 | 4294502258 | ./#innodb_temp/temp_2.ibt  | 81920 | INACTIVE | NONE      |
        |  0 | 4294502259 | ./#innodb_temp/temp_3.ibt  | 81920 | INACTIVE | NONE      |
        |  0 | 4294502260 | ./#innodb_temp/temp_4.ibt  | 81920 | INACTIVE | NONE      |
        |  0 | 4294502261 | ./#innodb_temp/temp_5.ibt  | 81920 | INACTIVE | NONE      |
        |  0 | 4294502262 | ./#innodb_temp/temp_6.ibt  | 81920 | INACTIVE | NONE      |
        |  0 | 4294502263 | ./#innodb_temp/temp_7.ibt  | 81920 | INACTIVE | NONE      |
        +----+------------+----------------------------+-------+----------+-----------+
  2. Consulta de tablas temporales de disco o archivos temporales creados implícitamente
    • Escenario

      Cuando se selecciona un plan de ejecución para una consulta, el optimizador de consultas puede usar tablas temporales. Se usan preferentemente tablas de memoria temporal. Cuando el tamaño de las tablas de memoria temporal excede el umbral (dependiendo del valor menor entre tmp_table_size y max_heap_table_size), se utilizan tablas de disco temporales.

      Las tablas temporales de disco son creadas implícitamente por consultas. Los datos entre las tablas que se crean implícita y explícitamente son los mismos y se almacenan en el espacio temporal de sesión. Si hay consultas complejas, incluidas, entre otras, palabras clave como UNION, GROUP BY y ORDER BY, en tablas más grandes, se pueden generar tablas de disco temporales. Además, cuando las consultas implican operaciones de ordenación, si el búfer de ordenación no puede almacenar todos los datos (el tamaño del búfer es especificado por sort_buffer_size), se pueden utilizar archivos de disco temporales para la ordenación auxiliar. En la mayoría de los escenarios, las tablas de disco temporales creadas implícitamente son la causa principal del espacio total en disco. Puede localizar consultas complejas o transacciones largas, optimizar sentencia de consulta, agregar índices adecuados y dividir transacciones largas para resolver estos problemas.

    • Resolución de problemas
      1. Compruebe si hay sentencias SQL que utilizan tablas temporales o clasificación de archivos.

        Si se muestra Using temporary en la columna Extra, se utilizan tablas temporales. Si se muestra Using filesort, se utiliza la clasificación de archivos.

      2. Consultar el uso de tablas temporales implícitas. El método es el mismo que las tablas temporales explícitas del disco.
  3. Consulta de registros binarios generados para transacciones largas
    • Escenario

      Binlog es un archivo binario que registra los cambios en la base de datos, como DDL, DCL y DML (excluido SELECT). InnoDB almacena en caché los binlogs en la memoria antes de que se realice una transacción y escribe binlogs en los discos solo después de que se realice la transacción. El tamaño del archivo binlog para cada conexión en la memoria se especifica mediante el parámetro binlog_cache_size. Cuando el tamaño del archivo binlog registrado por una transacción excede el valor de este parámetro, el archivo binlog se escribe en un archivo de disco temporal. Las transacciones largas pueden causar grandes binlogs. Como resultado, el tamaño de los binlogs temporales en el disco es grande y el disco puede estar lleno. Se recomienda controlar el tamaño de la transacción, separar transacciones largas o cambiar correctamente el valor de binlog_cache_size.

    • Resolución de problemas
      1. Compruebe si binlog está habilitado.
        mysql> show variables like 'log_bin';
        +---------------+-------+
        | Variable_name | Value |
        +---------------+-------+
        | log_bin       | ON    |
        +---------------+-------+
      2. Vea el uso de la caché de binlog.

        Binlog_cache_disk_use indica el número de veces que los archivos temporales de disco se utilizan para almacenar en caché binlogs debido a la falta de memoria (especificada por binlog_cache_size). Si el valor de binlog_cache_size es grande, se invocan los archivos de disco temporales para almacenar en caché binlogs varias veces.

        mysql> show global status like '%binlog_cache%';
        +-----------------------+-----------+
        | Variable_name         | Value     |
        +-----------------------+-----------+
        | Binlog_cache_disk_use | 1335006   |
        | Binlog_cache_use      | 264240359 |
        +-----------------------+-----------+
  4. Comprobación de archivos temporales generados por DDL
    • Escenario

      Durante las operaciones DDL en tablas, los archivos de disco temporales se generan en algunas fases.

      • A veces, es necesario volver a crear el espacio de tablas de la tabla original, lo que implica la recreación del índice de árbol B+ en la tabla. Si una tabla contiene una gran cantidad de datos, el búfer de ordenación no puede almacenar todos los datos. Es necesario crear un archivo temporal para ayudar a ordenar.
      • Aunque algunas sentencias DDL en línea admiten operaciones DML en la tabla original, la tabla original no se puede modificar directamente. La modificación debe registrarse en registros en línea y aplicarse a la nueva tabla una vez completadas las operaciones de DDL. Los registros en línea se almacenan preferentemente en la memoria. El tamaño de los registros en línea se especifica mediante el parámetro innodb_sort_buffer_size. Si el tamaño de los registros en línea excede el valor del parámetro, los registros en línea se almacenan temporalmente en un archivo temporal.
      • Cuando la sentencia OPTIMIZE TABLE se ejecuta en una tabla, los datos almacenados en el índice agrupado necesitan ser reorganizados, lo que puede generar archivos temporales.
    • Resolución de problemas
      • Ejecute el comando SHOW PROCESSLIST para comprobar si hay sentencias DDL que se han ejecutado durante mucho tiempo.
      • Asegúrese de que hay suficiente espacio antes de realizar DDL para tablas grandes.

Utilizamos cookies para mejorar nuestro sitio y tu experiencia. Al continuar navegando en nuestro sitio, tú aceptas nuestra política de cookies. Descubre más

Comentarios

Comentarios

Comentarios

0/500

Seleccionar contenido

Enviar el contenido seleccionado con los comentarios