【发布时间】:2017-03-27 14:48:23
【问题描述】:
我遇到了 SQL 查询问题。
目前我在不同的服务器上有两个 magento 版本,都从 1.9.2.4 升级到 1.9.3.2。
问题是,当我使用SHOW FULL PROCESSLIST 检查查询时,我发现它们花费了很多时间。经过一些研究,我尝试在两台服务器上运行相同的查询(直接通过 SQL 命令)。
结果速度为 1:15(68 x 263 行 vs 68 x 961902),一位同事还检查了EXPLAIN SQL 函数,发现在较慢的查询服务器中没有键(索引)。尝试运行添加 USE INDEX () 并使用来自更快查询服务器的密钥,这似乎是问题所在,因为查询的结果和速度相同。
总之,我们认为MYSQL 的某些配置不正确。
也许有人会建议哪些MYSQL 配置或服务器变量会导致此问题?
因为目前我没有想法。我试过谷歌搜索,但没有任何结果可以帮助我。
SQL 查询。
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/3/%')
AND (`level` <= 3)
ORDER BY `main_table`.`position` ASC
【问题讨论】:
-
当我将 magento 从使用 MySQL 5.5 的服务器移动到使用 MySQL 5.7 的服务器时,我遇到了同样的问题。这是我的问题stackoverflow.com/questions/43225701/…你找到解决方案了吗?我目前正在尝试找到在 magento 中放置“使用索引”的位置:)
-
用我的解决方案发布在你的帖子中