ACSD-62577: Optimización del rendimiento de búsqueda en tiendas
El parche ACSD-62577 corrige el problema con el rendimiento lento de las consultas de búsqueda de tienda al optimizar tanto los índices de consulta como de tabla. Este parche está disponible con Quality Patches Tool (QPT) 1.1.56. El ID del parche es ACSD-62577. Tenga en cuenta que el problema estaba programado para solucionarse en Adobe Commerce 2.4.8.
Productos y versiones afectados
El parche se ha creado para la versión de Adobe Commerce:
Adobe Commerce (todos los métodos de implementación) 2.4.6, 2.4.7-p2
Compatible con versiones de Adobe Commerce:
Adobe Commerce (todos los métodos de implementación) 2.4.4 - 2.4.7-p3
magento/quality-patches a la última versión y compruebe la compatibilidad en la página Quality Patches Tool: buscar parches . Utilice el ID de parche como palabra clave de búsqueda para localizar el parche.Problema
Las tablas grandes de search_query ralentizan considerablemente las búsquedas de tienda, lo que aumenta los tiempos de respuesta de front-end debido a consultas ineficientes y a la falta de índices de tabla optimizados.
Pasos a seguir:
-
Configure Adobe Commerce Develop utilizando el kit de herramientas de rendimiento
small.xml. -
Obtenga acceso a la línea de comandos de SQL y elimine la tabla
search_querymediante los siguientes comandos:code language-text SET FOREIGN_KEY_CHECKS = 0; DROP TABLE search_query; SET FOREIGN_KEY_CHECKS = 1; -
Rellene la tabla
search_querycon un gran número de registros, por ejemplo: 4 millones de registros. -
Déclencheur la reindexación y vaciado de cachés.
code language-shell bin/magento indexer:reindex bin/magento c:c bin/magento c:f -
Habilitar registros de depuración de base de datos:
code language-shell bin/magento dev:query-log:enable -
Busca un término en la barra de búsqueda de la tienda, por ejemplo,
http://your_magento_instance/default/catalogsearch/result/?q=test. -
Compruebe
db.logel tiempo de ejecución de la consulta para el siguiente SQL:code language-sql 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')
Resultados esperados:
El tiempo de ejecución de la consulta está optimizado, lo que da como resultado un aumento menos significativo del tiempo de respuesta al procesar tablas grandes de search_query.
Resultados reales:
El tiempo de ejecución de la consulta aumenta significativamente debido a la administración ineficaz de la tabla search_query de gran tamaño:
TIME: 10.8520 seconds
Aplicar el parche
Para aplicar parches individuales, utilice los siguientes vínculos según el método de implementación:
- Adobe Commerce o Magento Open Source local: Quality Patches Tool > Uso en la guía Quality Patches Tool.
- Adobe Commerce en la infraestructura de la nube: Actualizaciones y parches > Aplicar parches en la guía Commerce en la infraestructura de la nube.
Lectura relacionada
Para obtener más información sobre Quality Patches Tool, consulte:
- Quality Patches Tool: herramienta de autoservicio para parches de calidad en la guía Herramientas.