ACSD-62577: Prestandaoptimering för Storefront-sökning
Korrigeringen ACSD-62577 åtgärdar problemet med långsam prestanda för sökfrågor i butiker genom att optimera både fråga- och tabellindex. Den här korrigeringen är tillgänglig med Quality Patches Tool (QPT) 1.1.56. Korrigerings-ID är ACSD-62577. Observera att problemet var planerat att åtgärdas i Adobe Commerce 2.4.8.
Berörda produkter och versioner
Korrigeringen har skapats för Adobe Commerce-version:
Adobe Commerce (alla distributionsmetoder) 2.4.6, 2.4.7-p2
Kompatibel med Adobe Commerce-versioner:
Adobe Commerce (alla distributionsmetoder) 2.4.4 - 2.4.7-p3
magento/quality-patches
-paketet till den senaste versionen och kontrollerar kompatibiliteten på Quality Patches Tool: Sök efter korrigeringsfiler. Använd patch-ID:t som söknyckelord för att hitta patchen.Problem
Stora search_query
-tabeller gör att sökningar i butiker går långsammare, vilket ökar svarstiderna i frontend på grund av ineffektiva frågor och brist på optimerade tabellindex.
Steg som ska återskapas:
-
Konfigurera Adobe Commerce Developer med prestandaverktygen
small.xml
. -
Gå till SQL-kommandoraden och ta bort tabellen
search_query
med följande kommandon:code language-none SET FOREIGN_KEY_CHECKS = 0; DROP TABLE search_query; SET FOREIGN_KEY_CHECKS = 1;
-
Fyll i tabellen
search_query
med ett stort antal poster, t.ex. 4 miljoner poster. -
Utlös omindexering och tömning av cacher.
code language-none bin/magento indexer:reindex bin/magento c:c bin/magento c:f
-
Aktivera felsökningsloggar för databaser:
code language-none bin/magento dev:query-log:enable
-
Sök efter en term i sökfältet för butiker, t.ex.
http://your_magento_instance/default/catalogsearch/result/?q=test.
-
Kontrollera
db.log
för frågekörningstiden för följande SQL:code language-none SELECT COUNT(*) FROM ( SELECT DISTINCT `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 = 'test')
Förväntade resultat:
Frågekörningstiden är optimerad, vilket resulterar i en mindre signifikant ökning av svarstiden när stora search_query
tabeller bearbetas.
Faktiska resultat:
Frågekörningstiden ökar avsevärt på grund av ineffektiv hantering av den stora search_query
-tabellen:
TIME: 10.8520 seconds
Tillämpa korrigeringen
Använd följande länkar beroende på distributionsmetod för att tillämpa enskilda korrigeringsfiler:
- Lokal användning för Adobe Commerce eller Magento Open Source: Quality Patches Tool > Användningi guiden Quality Patches Tool.
- Adobe Commerce om molninfrastruktur: Uppgraderingar och korrigeringar > Tillämpa korrigeringar i Commerce om molninfrastruktur.
Relaterad läsning
Mer information om Quality Patches Tool finns i:
- Quality Patches Tool: Ett självbetjäningsverktyg för kvalitetspatchar i verktygshandboken.