SELECT
pvl.name_parametre_value_parametre_value_lang,
pv.id_parametre_value,
ic.id_combinaison,
ic.prix_combinaison,
ic.poid_combinaison,
ic.actif_combinaison,
ic.actif_genere,
pv.actif_value,
pipv.id_parametre_value as pipv_id_parametre_value
FROM
ps_imp_combinaison_parametre_value_6 cpv
LEFT JOIN ps_imp_combinaison_6 ic ON ic.id_combinaison = cpv.id_combinaison
LEFT JOIN ps_imp_parametre_value pv ON pv.id_parametre_value = cpv.id_parametre_value
LEFT JOIN ps_imp_parametre_value_lang pvl ON pvl.id_parametre_value = pv.id_parametre_value
LEFT JOIN ps_imp_parametre p ON p.id_parametre = pv.id_parametre
LEFT JOIN ps_imp_product_impression_parametre_value pipv ON pipv.id_parametre_value = pv.id_parametre_value and pipv.id_product_impression = 63
WHERE
p.id_nom_domaine = 6
AND
pvl.id_lang_domaine = 18
AND
ic.id_product_impression = 63
GROUP BY
ic.id_combinaison,
cpv.id_parametre_value
ORDER BY
ic.id_combinaison,
p.id_parametre
LIMIT
0, 50下面的查询花费了太多时间(超过4分钟)。有办法让它更快吗?
ps_imp_combinaison有97290条,ps_imp_combinaison_parametre_value有705595条
发布于 2018-09-19 13:34:21
SELECT
pvl.name_parametre_value_parametre_value_lang,
pv.id_parametre_value,
pipv.id_parametre_value as pipv_id_parametre_value
FROM
ps_imp_combinaison_parametre_value_6 cpv
LEFT JOIN ps_imp_combinaison_6 ic ON ic.id_combinaison = cpv.id_combinaison
LEFT JOIN ps_imp_parametre_value pv ON pv.id_parametre_value = cpv.id_parametre_value
LEFT JOIN ps_imp_parametre_value_lang pvl ON pvl.id_parametre_value = pv.id_parametre_value
LEFT JOIN ps_imp_parametre p ON p.id_parametre = pv.id_parametre
LEFT JOIN ps_imp_product_impression_parametre_value pipv ON pipv.id_parametre_value = pv.id_parametre_value and pipv.id_product_impression = 63
WHERE
p.id_nom_domaine = 6
AND
pvl.id_lang_domaine = 18
AND
ic.id_product_impression = 63
GROUP BY
ic.id_combinaison,
cpv.id_parametre_value
ORDER BY
ic.id_combinaison,
p.id_parametre
LIMIT
0, 50发布于 2018-05-11 16:17:00
您的查询包含大量联接,这将增加提取信息所需的时间。没有一种简单的方法来加速你拥有的东西,因为你已经对所有的结果应用了一个限制,而且这个限制看起来并不容易被更早的应用。
减少时间的最大潜力是通过查看所拖动的内容背后的逻辑,看看是否可以减少连接的数量。此外,查看是否可以在加入以下子查询之前应用限制:
SELECT * FROM
(SELECT * FROM table_1 LIMIT 50) as subq
LEFT JOIN ... 这可能有助于降低后期联接的复杂性。
发布于 2018-05-11 16:22:27
您有定义任何索引吗?您肯定希望在ps_imp_combinaison表列id_combinaison和ps_imp_combinaison_parametre_value表列id_combinaison上建立索引,因为这是可能最大的表的主要连接条件。
那么,标准列的其他索引可能会有所帮助。请记住,索引是有权衡的;索引越多,插入/更新/删除所用的时间就越长,但它们可能会使4分钟的查询变成一个4秒的查询。
https://stackoverflow.com/questions/50296277
复制相似问题