[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

ACSD-68040 : la page de recherche front-end ralentit sur MariaDB 10.6 avec un historique volumineux

Le correctif ACSD-68040 corrige le problème en raison duquel la page de recherche front-end subit une dégradation significative des performances lors de l’exécution sur MariaDB 10.6 avec un grand volume de requêtes de recherche historiques. Ce correctif est disponible lorsque la version 1.1.72 de Quality Patches Tool (QPT) est installée. L’ID du correctif est ACSD-68040.

Produits et versions concernés

Le correctif est créé pour la version Adobe Commerce :

  • Adobe Commerce (toutes les méthodes de déploiement) 2.4.6-p12

Compatible avec les versions d’Adobe Commerce :

  • Adobe Commerce (toutes les méthodes de déploiement) 2.4.4 - 2.4.6-p12
NOTE
Le correctif peut s’appliquer à d’autres versions avec de nouvelles versions de Quality Patches Tool. Pour vérifier si le correctif est compatible avec votre version d’Adobe Commerce, mettez à jour le package magento/quality-patches vers la dernière version et vérifiez la compatibilité sur la page Quality Patches Tool : Rechercher des correctifs. Utilisez l’ID du correctif comme mot-clé de recherche pour localiser le correctif.

Problème

La page de recherche front-end ralentit considérablement sur MariaDB 10.6 lors du traitement d’un volume élevé de requêtes de recherche historiques. Une requête sur la table search_query prend jusqu’à 13 secondes sur MariaDB 10.6, contre moins de 0,5 seconde sur MariaDB 11.4.

Procédure à suivre :

  1. Installez une instance propre avec MariaDB 10.6 à des fins de test.

  2. Remplissez la table search_query avec 2 millions d’entrées.

  3. Exécutez la requête SQL suivante :

    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. Notez que la requête prend environ 13 secondes.

  5. Mettez à niveau la base de données vers MariaDB 11.4.

  6. Réexécutez la même requête 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. Notez que la requête se termine maintenant en environ 0,4 à 0,5 seconde.

Résultats attendus :

La structure de la requête ou de la table doit être optimisée pour garantir un temps d’exécution minimal, quelle que soit la version de MariaDB.

Résultats réels :

La requête prend environ 13 à 15 secondes sur MariaDB 10.6 et 0,4 à 0,5 secondes sur MariaDB 11.4.

Application du correctif

Pour appliquer des correctifs individuels, utilisez les liens suivants en fonction de votre méthode de déploiement :

Lecture connexe

Pour en savoir plus sur Quality Patches Tool, consultez :

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