ACSD-68040: la pagina di ricerca front-end rallenta su MariaDB 10.6 con una cronologia di grandi dimensioni
La patch ACSD-68040 risolve il problema relativo al notevole deterioramento delle prestazioni della pagina di ricerca front-end durante l'esecuzione su MariaDB 10.6 con un grande volume di richieste di ricerca cronologiche. Questa patch è disponibile quando è installato Quality Patches Tool (QPT) 1.1.72. L’ID della patch è ACSD-68040.
Prodotti e versioni interessati
La patch è stata creata per la versione di Adobe Commerce:
- Adobe Commerce (tutti i metodi di implementazione) 2.4.6-p12
Compatibile con le versioni di Adobe Commerce:
- Adobe Commerce (tutti i metodi di implementazione) 2.4.4 - 2.4.6-p12
magento/quality-patches alla versione più recente e verificare la compatibilità nella pagina Quality Patches Tool: Cerca patch. Utilizza l’ID patch come parola chiave di ricerca per individuare la patch.Problema
La pagina di ricerca front-end rallenta notevolmente in MariaDB 10.6 durante l'elaborazione di un volume elevato di richieste di ricerca cronologiche. Una query sulla tabella search_query richiede fino a 13 secondi in MariaDB 10.6, rispetto a meno di 0.5 secondi in MariaDB 11.4.
Passaggi da riprodurre:
-
Installa un'istanza pulita con MariaDB 10.6 a scopo di test.
-
Popolare la tabella
search_querycon 2 milioni di voci. -
Esegui la seguente query SQL:
code language-none SELECT COUNT(*) FROM ( SELECT `main_table`.`query_text` FROM `search_query` AS `main_table` WHERE (main_table.store_id IN (1)) AND (main_table.num_results > 0) ORDER BY `main_table`.`popularity` DESC LIMIT 100 ) AS `result` WHERE (result.query_text = 'seed_q_0000009'); -
Osserva che il completamento della query richiede circa 13 secondi.
-
Aggiornare il database a MariaDB 11.4.
-
Rieseguire la stessa query SQL:
code language-none SELECT COUNT(*) FROM ( SELECT `main_table`.`query_text` FROM `search_query` AS `main_table` WHERE (main_table.store_id IN (1)) AND (main_table.num_results > 0) ORDER BY `main_table`.`popularity` DESC LIMIT 100 ) AS `result` WHERE (result.query_text = 'seed_q_0000009'); -
Osserva che la query viene ora completata in circa 0,4-0,5 secondi.
Risultati previsti:
La struttura della query o della tabella deve essere ottimizzata per garantire un tempo di esecuzione minimo, indipendentemente dalla versione di MariaDB.
Risultati effettivi:
La query richiede circa 13-15 secondi su MariaDB 10.6 e 0.4-0.5 secondi su MariaDB 11.4.
Applicare la patch
Per applicare singole patch, utilizzare i collegamenti seguenti, a seconda del metodo di distribuzione utilizzato:
- Adobe Commerce o Magento Open Source on-premise: Quality Patches Tool > Utilizzo nella guida di Quality Patches Tool.
- Adobe Commerce su infrastruttura cloud: Aggiornamenti e patch > Applica patch nella guida Commerce su infrastruttura cloud.
Lettura correlata
Per ulteriori informazioni su Quality Patches Tool, vedere:
- Quality Patches Tool: strumento self-service per patch di qualità nella guida degli strumenti.