我有 Magento 1.9.2.1 。并在Apache2和MySQL 5.5上成功运行。
我尝试将其迁移到另一台服务器并使用 NGINX 和 MySQL 5.7。
但网站开始变得非常慢(12 秒对 2 秒)。
经过几个小时的调试,我发现一个查询有问题:
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;
在解释时我发现没有使用索引。在旧的 MySQL 5.5 服务器上,解释命令显示正在使用的索引。一旦我强制使用索引,新服务器就会在 0.01 秒而不是 10 秒内做出响应。但我认为更改 magento 代码的源文件不是一个好主意。
有没有办法强制 MySQL 5.7 在索引选择方面以与 5.5 类似的方式工作?
遗憾的是,只有 MySQL 从 5.7 降级到 5.5 才为我解决了类似的问题。Magento sql查询没有索引 https://stackoverflow.com/questions/43049627/magento-sql-query-have-no-index/43369915#43369915
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)