Tengo un Magento 1.9.2.1. Y se ejecuta con éxito en Apache2 y MySQL 5.5.
Intenté migrarlo a otro servidor y usé NGINX y MySQL 5.7 para ello.
Pero el sitio web comenzó a ser muy lento (12 segundos contra 2). Después de varias horas de depuración, descubrí que hay un problema en una consulta:
SELECT `main_table`.`entity_id`, `main_table`.`name`, `main_table`.`path`, `main_table`.`is_active`, `main_table`.`is_anchor`, `url_rewrite`.`request_path` FROM `catalog_category_flat_store_1` AS `main_table` LEFT JOIN `core_url_rewrite` AS `url_rewrite` ON `url_rewrite`.`category_id` = `main_table`.`entity_id` AND `url_rewrite`.`is_system` = 1 AND `url_rewrite`.`store_id` = 1 AND `url_rewrite`.`id_path` LIKE 'category/%' WHERE (`main_table`.`include_in_menu` = '1') AND (`main_table`.`is_active` = '1') AND (`main_table`.`path` like '1/2/%') ORDER BY `main_table`.`position` ASC;Y al explicar he encontrado que no se utiliza ningún índice. En el antiguo servidor MySQL 5.5, explique el comando que muestra el índice en uso. Una vez que fuerzo el uso del índice, el nuevo servidor responde en 0.01 s en lugar de 10 s. Pero creo que no es buena idea cambiar los archivos fuente del código magento.
¿Hay alguna manera de forzar el trabajo de MySQL 5.7 de manera similar a 5.5 en la selección de índices?
Lamentablemente, solo la versión anterior de MySQL de 5.7 a 5.5 solucionó un problema similar para mí. La consulta Magento sql no tiene índice
Solo para cualquier otra persona que busque esto como lo estaba yo hoy, hay una solución simple que puede aplicar a los detalles de app/code/core/Mage/Catalog/Helper/Category/Url/rewrite.php aquí: https://github.com/hvanmegen /magento-mysql-5.7-join-fix