Il database sta creando tabelle temporanee su disco - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Il database sta creando tabelle temporanee su disco

L'utilizzo recente delle tabelle temporanee su disco è aumentato in modo significativo, fino apercentage. Il database crea circa tabelle number temporanee al secondo. Ciò potrebbe influire sulle prestazioni e aumentare le operazioni su discodb-instance.

Versioni del motore supportate

Queste informazioni approfondite sono supportate per tutte le versioni di Aurora MySQL.

Contesto

A volte è necessario che il server MySQL crei una tabella temporanea interna durante l'elaborazione di una query. può contenere una tabella temporanea interna in memoria, dove può essere elaborata dal motore di archiviazione MEMORY o archiviata su disco TempTable da InnoDB. Per ulteriori informazioni, consulta Uso della tabella temporanea interna in MySQL nel Manuale di riferimento di MySQL.

Probabili cause di questo problema

Un aumento delle tabelle temporanee su disco indica l'uso di query complesse. Se la memoria configurata non è sufficiente per archiviare le tabelle temporanee in memoria, Aurora MySQL crea le tabelle su disco. Ciò può influire sulle prestazioni e aumentare le operazioni del disco.

Azioni

Consigliamo azioni diverse a seconda delle cause degli approfondimenti.

  • Per versione 3, si consiglia di utilizzare il motore di archiviazione. TempTable

  • Ottimizza le query in modo da restituire meno dati selezionando solo le colonne necessarie.

    Se attivi lo schema delle prestazioni con tutti gli strumenti statement abilitati e temporizzati, puoi eseguire la query SYS.statements_with_temp_tables per recuperare l'elenco delle query che utilizzano le tabelle temporanee. Per ulteriori informazioni, consulta Prerequisiti per l'utilizzo dello schema sys nella documentazione di MySQL.

  • Prendi in considerazione l'indicizzazione delle colonne coinvolte nelle operazioni di ordinamento e raggruppamento.

  • Riscrivi le query per evitare le colonne BLOB e TEXT. Queste colonne utilizzano sempre il disco.

  • Ottimizza i parametri del database tmp_table_size e max_heap_table_size.

    Il valore predefinito di questi parametri è 16 MiB. Quando si utilizza il motore di archiviazione MEMORY per tabelle temporanee in memoria, la dimensione massima è definita dal valore tmp_table_size o max_heap_table_size, a seconda di quale sia il più piccolo. Quando viene raggiunta questa dimensione massima, MySQL converte automaticamente la tabella temporanea interna in memoria in una tabella temporanea interna di InnoDB su disco. Per ulteriori informazioni, consulta Utilizzare il motore TempTable di storage su Amazon RDS for MySQL e Amazon Aurora MySQL.

    Nota

    Quando si creano in modo esplicito tabelle MEMORY con CREATE TABLE, solo la variabile max_heap_table_size determina la dimensione massima di una tabella. Inoltre, non è prevista la conversione in un formato su disco.

Metriche pertinenti

A questo approfondimento sono correlati i seguenti parametri di Approfondimenti sulle prestazioni:

  • Created_tmp_disk_tables

  • Created_tmp_tables

Per ulteriori informazioni, consulta Created_tmp_disk_tables nella documentazione di MySQL.