Virtuemart 3.4.2 - přetížení databáze
20. lis 2018 08:02 #137816
napsal Petr
Virtuemart 3.4.2 - přetížení databáze vytvořeno Petr
Ahojte,
nestalo se někomu že by Virtuemart přetěžoval datábazi dotazem níže jsou v něm snad všechny produkty z katalogu cca. 1000 a probírá to všechny tabulky mutací takže u nás nějakých 7 a pravidelně to od shazuje server od té doby co jsem na 3.4.2 aktualizoval.
SELECT SQL_CALC_FOUND_ROWS p.`virtuemart_product_id`, l.product_name
FROM `joom_virtuemart_products` as p
INNER JOIN `joom_virtuemart_products_en_gb` as l ON l.`virtuemart_product_id` = p.`virtuemart_product_id`
LEFT JOIN `joom_virtuemart_product_shoppergroups` as ps ON p.`virtuemart_product_id` = `ps`.`virtuemart_product_id`
LEFT JOIN `joom_virtuemart_product_categories` as pc ON p.`virtuemart_product_id` = `pc`.`virtuemart_product_id`
LEFT JOIN `joom_virtuemart_categories` as c ON c.`virtuemart_category_id` = `pc`.`virtuemart_category_id`
WHERE ( ((p.`product_parent_id` = "0" AND `pc`.`virtuemart_category_id` > "0") OR p.`product_parent_id` > "0") AND ((p.`product_parent_id` > "0" AND `pc`.`virtuemart_category_id` > "0") OR p.`product_parent_id` = "0") AND `c`.`published` = 1 AND ( `ps`.`virtuemart_shoppergroup_id`= "1" OR `ps`.`virtuemart_shoppergroup_id` IS NULL ) AND p.`published`="1" AND p.`virtuemart_product_id`!=919 AND p.`virtuemart_product_id`!=921 AND
......
group by p.`virtuemart_product_id`
ORDER BY `pc`.`ordering` ASC, `product_name` ASC LIMIT 0, 100;
nestalo se někomu že by Virtuemart přetěžoval datábazi dotazem níže jsou v něm snad všechny produkty z katalogu cca. 1000 a probírá to všechny tabulky mutací takže u nás nějakých 7 a pravidelně to od shazuje server od té doby co jsem na 3.4.2 aktualizoval.
SELECT SQL_CALC_FOUND_ROWS p.`virtuemart_product_id`, l.product_name
FROM `joom_virtuemart_products` as p
INNER JOIN `joom_virtuemart_products_en_gb` as l ON l.`virtuemart_product_id` = p.`virtuemart_product_id`
LEFT JOIN `joom_virtuemart_product_shoppergroups` as ps ON p.`virtuemart_product_id` = `ps`.`virtuemart_product_id`
LEFT JOIN `joom_virtuemart_product_categories` as pc ON p.`virtuemart_product_id` = `pc`.`virtuemart_product_id`
LEFT JOIN `joom_virtuemart_categories` as c ON c.`virtuemart_category_id` = `pc`.`virtuemart_category_id`
WHERE ( ((p.`product_parent_id` = "0" AND `pc`.`virtuemart_category_id` > "0") OR p.`product_parent_id` > "0") AND ((p.`product_parent_id` > "0" AND `pc`.`virtuemart_category_id` > "0") OR p.`product_parent_id` = "0") AND `c`.`published` = 1 AND ( `ps`.`virtuemart_shoppergroup_id`= "1" OR `ps`.`virtuemart_shoppergroup_id` IS NULL ) AND p.`published`="1" AND p.`virtuemart_product_id`!=919 AND p.`virtuemart_product_id`!=921 AND
......
group by p.`virtuemart_product_id`
ORDER BY `pc`.`ordering` ASC, `product_name` ASC LIMIT 0, 100;
Pro možnost přispívání do fóra se přihlaste.
20. lis 2018 13:53 - 20. lis 2018 13:55 #137837
napsal Linelabcz
Odpověď od Linelabcz
Tady je nějaký fix
forum.virtuemart.net/index.php?topic=141440.msg498216#msg498216
Pro možnost přispívání do fóra se přihlaste.
20. lis 2018 14:19 - 20. lis 2018 14:19 #137840
napsal Petr
Odpověď od Petr
Díky,
ale už to nebudu lepit dalším fixem ten můj původní zatím funguje. Upravil jsem vmmodel.php za řádek 815
jsem přidal
ale už to nebudu lepit dalším fixem ten můj původní zatím funguje. Upravil jsem vmmodel.php za řádek 815
Code:
public function exeSortSearchListQuery($object, $select, $joinedTables, $whereString = '', $groupBy = '', $orderBy = '', $filter_order_Dir = '', $nbrReturnProducts = false ){
Code:
if (preg_match("/`product_parent_id` = \"0\"/", $whereString))
{
return '';
}
Pro možnost přispívání do fóra se přihlaste.