Ottimizzazione delle query in parallelo in Aurora MySQL - 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à.

Ottimizzazione delle query in parallelo in Aurora MySQL

Per ottimizzare il tuo cluster di database per le query parallele, considera quali cluster di database trarrebbero vantaggio dalle query parallele e se eseguire l’aggiornamento per le query parallele. Quindi, ottimizza il carico di lavoro e crea oggetti dello schema per le query parallele.

Pianificazione di un cluster di query parallele

La pianificazione di un cluster di database abilitato per la query parallela richiede di effettuare alcune scelte. Queste includono l'esecuzione di passaggi di installazione (ovvero la creazione o il ripristino di un cluster Aurora MySQL completo), e la decisione in quale misura abilitare la query parallela nel cluster di database.

Considerare quanto segue nell'ambito della pianificazione:

  • Se si utilizza Aurora MySQL che è compatibile con MySQL 5.7, è necessario creare un cluster con provisioning. Quindi si attiva la query parallela utilizzando il parametro aurora_parallel_query.

    Se disponi di un cluster Aurora MySQL, non è necessario creare un nuovo cluster per utilizzare la query parallela. È possibile associare il cluster o istanze DB specifiche nel cluster a un gruppo di parametri con il parametro aurora_parallel_query abilitato. In questo modo, è possibile ridurre il tempo e gli sforzi necessari per impostare i dati rilevanti da utilizzare con query parallele.

  • Pianificare le tabelle di grandi dimensioni che è necessario riorganizzare in modo da poter utilizzare la query parallela quando si accede ad esse. Potrebbe essere necessario creare nuove versioni di alcune tabelle di grandi dimensioni in cui la query parallela è utile. Ad esempio, potrebbe essere necessario rimuovere gli indici di ricerca full-text. Per informazioni dettagliate, consultare Creazione di oggetti di schema per usufruire dei vantaggi delle query in parallelo.

Verifica della compatibilità della versione Aurora MySQL per la query parallela

Per verificare quali versioni Aurora MySQL sono compatibili con i cluster di query parallele, utilizzare il comando describe-db-engine-versions AWS CLI e controllare il valore del campo SupportsParallelQuery. L'esempio di codice seguente mostra come verificare quali combinazioni sono disponibili per i cluster di query paralleli in una regione AWS specificata. Assicurarsi di specificare la stringa di parametro --query completa su una singola riga.

aws rds describe-db-engine-versions --region us-east-1 --engine aurora-mysql \ --query '*[]|[?SupportsParallelQuery == `true`].[EngineVersion]' --output text

Il comando precedente genera un output simile al seguente: L'output potrebbe variare a seconda delle versioni Aurora MySQL disponibili nella regione AWS specificata.

5.7.mysql_aurora.2.11.1 5.7.mysql_aurora.2.11.2 5.7.mysql_aurora.2.11.3 5.7.mysql_aurora.2.11.4 5.7.mysql_aurora.2.11.5 5.7.mysql_aurora.2.11.6 5.7.mysql_aurora.2.12.0 5.7.mysql_aurora.2.12.1 5.7.mysql_aurora.2.12.2 5.7.mysql_aurora.2.12.3 5.7.mysql_aurora.2.12.4 8.0.mysql_aurora.3.04.0 8.0.mysql_aurora.3.04.1 8.0.mysql_aurora.3.04.2 8.0.mysql_aurora.3.04.3 8.0.mysql_aurora.3.05.2 8.0.mysql_aurora.3.06.0 8.0.mysql_aurora.3.06.1 8.0.mysql_aurora.3.07.0 8.0.mysql_aurora.3.07.1

Dopo aver iniziato a utilizzare query parallele con un cluster, è possibile monitorare le prestazioni e rimuovere gli ostacoli all'utilizzo delle query parallele. Per quelle istruzioni, Ottimizzazione delle prestazioni per le query in parallelo.

Considerazioni relative agli aggiornamenti per le query in parallelo

A seconda delle versioni originali e di destinazione quando si aggiorna un cluster di query parallelo, è possibile trovare miglioramenti nei tipi di query che la query parallela può ottimizzare. È inoltre possibile che non sia necessario specificare un parametro speciale della modalità motore per la query parallela. Le sezioni seguenti spiegano le considerazioni quando si aggiorna un cluster in cui è attivata la query parallela.

Aggiornare cluster di query paralleli a Aurora MySQL versione 3

Diverse istruzioni SQL, clausole e tipi di dati hanno un supporto per query parallele nuove o migliorate a partire da Aurora MySQL versione 3. Quando si esegue l'aggiornamento da una versione precedente alla versione 3, verificare se ulteriori query possono trarre vantaggio dalle ottimizzazioni parallele delle query. Per informazioni su questi miglioramenti delle query parallele, vedere Tipi di dati di colonna,Tabelle partizionate, eFunzioni di aggregazione, clausole GROUP BY e clausole HAVING.

Se stai aggiornando un cluster di query parallele da Aurora MySQL 2.08 o versione precedente, sono disponibili anche informazioni sulle modifiche per attivare la query parallela. A questo scopo, leggere Aggiornamento ad Aurora MySQL 2.09 e versioni successive.

L'ottimizzazione del hash join è disattivata per impostazione predefinita in Aurora MySQL versione 3. L'opzione di configurazione aurora_disable_hash_join delle versioni precedenti non viene utilizzata.

Aggiornamento ad Aurora MySQL 2.09 e versioni successive

In Aurora MySQL 2.09 e versioni successive, la query parallela funziona per i cluster allocati e non richiede il parametro della modalità del motore parallelquery. Pertanto, non è necessario creare un nuovo cluster o ripristinare da uno snapshot esistente per utilizzare query parallele con queste versioni. È possibile utilizzare le procedure di aggiornamento descritte in Aggiornamento della versione secondaria o del livello di patch di un cluster di database Aurora MySQL per aggiornare il cluster a tale versione. È possibile aggiornare un cluster meno recente indipendentemente dal fatto che si trattasse di un cluster di query parallelo o di un cluster di cui è stato eseguito il provisioning. Per ridurre il numero di scelte nel menu Versione motore è possibile scegliere Mostra versioni che supportano la funzionalità di query parallela per filtrare le voci di tale menu. Quindi scegli Aurora MySQL 2.09 o versione successiva.

Dopo aver aggiornato un cluster di query parallele meno recente ad Aurora MySQL 2.09 o versione successiva, puoi attivare la query parallela nel cluster aggiornato. La query parallela è disattivata per impostazione predefinita in queste versioni e la procedura per abilitarla è diversa. Anche l'ottimizzazione hash join è disattivata per impostazione predefinita e deve essere abilitata separatamente. Pertanto, assicurarsi di attivare nuovamente queste impostazioni dopo l'aggiornamento. Per istruzioni su questa operazione, vedere Attivazione e disattivazione di query in parallelo in Aurora MySQL e Abilitazione dell'hash join per cluster di query parallele.

In particolare, è possibile abilitare la query parallela utilizzando i parametri di configurazione aurora_parallel_query=ON e aurora_disable_hash_join=OFF invece di aurora_pq_supported e aurora_pq. I parametri aurora_pq_supported e aurora_pq sono deprecati nelle versioni Aurora MySQL più recenti.

Nel cluster aggiornato, l'attributo EngineMode ha il valore provisioned invece di parallelquery. Per verificare se la query parallela è disponibile per una versione del motore specificata, ora si controlla il valore del campo SupportsParallelQuery nell'output del comando describe-db-engine-versions AWS CLI. Nelle versioni precedenti di Aurora MySQL, è stata verificata la presenza di parallelquery nell'elenco SupportedEngineModes.

Dopo l'aggiornamento ad Aurora MySQL 2.09 o versione successiva, puoi utilizzare le funzionalità indicate di seguito. Queste funzionalità non sono disponibili per i cluster di query parallele che eseguono versioni Aurora MySQL precedenti.

Ottimizzazione delle prestazioni per le query in parallelo

Per gestire le prestazioni di un carico di lavoro con la funzionalità di query in parallelo, assicurati che questa sia utilizzata per le query per le quali tale ottimizzazione risulta più utile.

A questo proposito, puoi eseguire le operazioni elencate di seguito:

Creazione di oggetti di schema per usufruire dei vantaggi delle query in parallelo

Prima di creare o modificare tabelle che si intende utilizzare per query parallele, assicurarsi di familiarizzare con i requisiti descritti in Prerequisiti e Limitazioni.

Poiché per le query in parallelo è necessario che le tabelle utilizzino l'impostazione ROW_FORMAT=Compact o ROW_FORMAT=Dynamic, verifica le impostazioni di configurazione Aurora per eventuali modifiche all'opzione di configurazione INNODB_FILE_FORMAT. Esegui l'istruzione SHOW TABLE STATUS per confermare il formato di riga per tutte le tabelle in un database.

Prima di modificare lo schema per consentire alla query parallela di lavorare con più tabelle, assicurarsi di eseguire il test. I test devono confermare se la query parallela determina un aumento netto delle prestazioni per tali tabelle. Assicurati inoltre che i requisiti di schema per le query in parallelo coincidano con i tuoi obiettivi.

Ad esempio, prima di passare da ROW_FORMAT=Compressed a ROW_FORMAT=Compact o ROW_FORMAT=Dynamic, compara le prestazioni dei carichi di lavoro rispetto alle tabelle di origine e a quelle nuove. Considera inoltre altri potenziali effetti come un aumento del volume di dati.