0

行 2070 には、次のような SQL があります。

SELECT product_shop.id_product, product_attribute_shop.id_product_attribute
FROM `'._DB_PREFIX_.'product` p
'.Shop::addSqlAssociation('product', 'p').'
LEFT JOIN  `'._DB_PREFIX_.'product_attribute` pa ON (product_shop.id_product = pa.id_product)
'.Shop::addSqlAssociation('product_attribute', 'pa', false, 'product_attribute_shop.default_on = 1').'
WHERE product_shop.`active` = 1
'.(($ids_product) ? $ids_product : '').'
AND p.`id_product` IN (
    SELECT cp.`id_product`
    FROM `'._DB_PREFIX_.'category_group` cg
    LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
    WHERE cg.`id_group` '.$sql_groups.'
)
'.($front ? ' AND product_shop.`visibility` IN ("both", "catalog")' : '').'
AND (pa.id_product_attribute IS NULL OR product_attribute_shop.default_on = 1)
GROUP BY product_shop.id_product
ORDER BY RAND()

削除できるかどうか知りたい :

'.(($ids_product) ? $ids_product : '').'

16k 製品の場合、16k の「OR」があり、それが大きすぎて、サーバーから多くのリソースが必要になるためです。

「LIMIT 0, 200」も追加しましたが、いいのかわかりません?

ありがとう

4

1 に答える 1

0

動作するlimitはずです。他の変更によっても、望ましい結果が得られる場合があります。

最も重要なことは、コア ファイルを変更しないことです。変更すると、サイトの他の部分が予期せず変更される可能性があります。

Prestashop は、すべてを壊すことなくコア ファイルをオーバーライドする方法を提供し、元のファイルにすばやく戻すことができます。

products.phpファイルをディレクトリにコピーし、overridesそこで変更を加えます。

Prestashop オーバーライドのサポートとドキュメントを見つけることができます @ Overriding default behaviors

于 2013-03-04T16:41:49.540 に答える