[Solo PaaS]{class="badge informative" title="Applicabile solo ai progetti Adobe Commerce on Cloud (infrastruttura PaaS gestita da Adobe) e ai progetti on-premise."}

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
NOTE
La patch potrebbe diventare applicabile ad altre versioni con le nuove versioni di Quality Patches Tool. Per verificare se la patch è compatibile con la versione di Adobe Commerce in uso, aggiornare il pacchetto 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:

  1. Installa un'istanza pulita con MariaDB 10.6 a scopo di test.

  2. Popolare la tabella search_query con 2 milioni di voci.

  3. 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');
    
  4. Osserva che il completamento della query richiede circa 13 secondi.

  5. Aggiornare il database a MariaDB 11.4.

  6. 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');
    
  7. 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:

Lettura correlata

Per ulteriori informazioni su Quality Patches Tool, vedere:

recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3