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.
Argomenti
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
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
statementabilitati e temporizzati, puoi eseguire la querySYS.statements_with_temp_tablesper recuperare l'elenco delle query che utilizzano le tabelle temporanee. Per ulteriori informazioni, consulta Prerequisiti per l'utilizzo dello schema sysnella documentazione di MySQL. -
Prendi in considerazione l'indicizzazione delle colonne coinvolte nelle operazioni di ordinamento e raggruppamento.
-
Riscrivi le query per evitare le colonne
BLOBeTEXT. Queste colonne utilizzano sempre il disco. -
Ottimizza i parametri del database
tmp_table_sizeemax_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_sizeomax_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_sizedetermina 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