Virtuemart 3.4.2 - přetížení databáze
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 je nutné: Přihlásit se nebo Vytvořit účet.
Tady je nějaký fix
forum.virtuemart.net/index.php?topic=141440.msg498216#msg498216
Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.
Díky,
ale už to nebudu lepit dalším fixem ten můj původní zatím funguje. Upravil jsem vmmodel.php za řádek 815jsem 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
public function exeSortSearchListQuery($object, $select, $joinedTables, $whereString = '', $groupBy = '', $orderBy = '', $filter_order_Dir = '', $nbrReturnProducts = false ){
if (preg_match("/`product_parent_id` = \"0\"/", $whereString))
{
return '';
}
Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.