LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
26.05.2012, 12:43:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: 1 2 [Все]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: [Хак] Ускорение загрузки магазина (минимум в 10 раз)  (Прочитано 19693 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
ifx
Захожу иногда
**

Репутация: +4/-0
Offline Offline

Сообщений: 5



« : 10.08.2010, 01:40:52 »

Привет!
Давно я здесь не был под своим логином. Но вот сегодня настал момент оптимизации моего небольшого магазинчика и я начал рыть...Не суть, нашел решение. Применил у себя на сайте, был потрясен результатами и удивлен что на форуме никто еще об этом не написал. Поэтому специально восстановил забытый пароль и спешу...кароче начинаем! Azn

Идем вот суда:
Цитировать
/ваш_сайт/www/administrator/components/com_virtuemart/html/
там находим файл shop_browse_queries.php
открываем и ищем 61 строчку
Код:
$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)";
заменяем ее на
Код:
$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`)";
жмакаем сохранить, обновляем файл на сервере, очищаем кэши. Радуемся жизни.

Оригинальная тема на форуме виртуамарта - http://forum.virtuemart.net/index.php?topic=65103.0
Висит с января 2010 как видите..там же дальше в 3-ех страницах можете почитать благодарственные отзывы народа, с каталогом в 5000-30.000 товаров, и как у них все стало летать. К слову там же можно найти и каммент разработчика по этому поводу. А если копнуть свосем глубоко, некий малый, я так понимаю русский (нкто haword) выложил свой вариант файла shop_browse_queries.php

Кому лень копаться в коде, вот ссылки (файл приаттачить почему-то не могу)
http://slil.ru/29548397 - версия от Udo
http://slil.ru/29548399 - версия от haword

ВАЖНО: кол-во запоросов не уменьшилось. Изменилось само качество запроса.
ВАЖНО №2: чтобы уменьшить кол-во запросов к БД (тобишь кэшировать их) юзайте вот этот замечтательный компонент:
QueryCache 1.5.0 RC2 (for Joomla 1.5.x) - http://www.joomlaperformance.com/component/option,com_docman/task,cat_view/gid,41/Itemid,39/
Мануалка по установке  - http://www.joomlaperformance.com/component/option,com_easyfaq/task,view/id,28/Itemid,7/
ВАЖНО №3: Сам еще пока не проверял (в ближайшие пару часов) нашел еще вот такой интересный вариант кэша - http://forum.virtuemart.net/index.php?topic=43602.0

Обо мне:
Joomla 1.5.18
Virtuemart 1.1.4
После установки QueryCache кол-во запросов в VirtueMart при просмотре товара сократилось в 1.5 раза
После установки хака + querycache магазин стал грузится за
Цитировать
Application afterLoad: 0.000 seconds, 0.40 MB
Application afterInitialise: 0.188 seconds, 4.55 MB
Application afterRoute: 0.197 seconds, 5.46 MB
Application afterDispatch: 0.455 seconds, 18.28 MB
Application afterRender: 0.519 seconds, 19.36 MB
Успехов ребят! Azn
-----------------------------

P.S. from Beagler

По просьбам трудящихся Важное замечание №0
"разумеется, при этом хаке про дочерние товары можно забыть, но если Вы их не используете - это для Вас."
« Последнее редактирование: 15.05.2011, 00:10:02 от beagler » Записан
 
adjuster
Завсегдатай
*****

Репутация: +52/-2
Offline Offline

Пол: Мужской
Сообщений: 788


« Ответ #1 : 10.08.2010, 09:15:25 »

Цитировать
shop_browse_queries.php
открываем и ищем 61 строчку
Код:

$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)";

заменяем ее на
Код:

$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`)";

жмакаем сохранить, обновляем файл на сервере, очищаем кэши. Радуемся жизни.

+1!!
Записан
ifx
Захожу иногда
**

Репутация: +4/-0
Offline Offline

Сообщений: 5



« Ответ #2 : 10.08.2010, 22:30:19 »

туплю...
http://joomlaforum.ru/index.php/topic,89688.msg569895.html#msg569895
Записан
morph
Живу я здесь
******

Репутация: +96/-0
Offline Offline

Сообщений: 957


« Ответ #3 : 13.08.2010, 06:04:27 »

там проверка по дочерним товарам.с ними пробовал как работает?
Записан
GrayHunter
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 68


« Ответ #4 : 17.08.2010, 14:21:50 »

Т.е. при таком хаке мы ничего не лишаемся, а скорость просто увеличивается?
Записан
adjuster
Завсегдатай
*****

Репутация: +52/-2
Offline Offline

Пол: Мужской
Сообщений: 788


« Ответ #5 : 17.08.2010, 15:50:42 »

Т.е. при таком хаке мы ничего не лишаемся, а скорость просто увеличивается?
Визуально да - причем реально ощущается.
Записан
GrayHunter
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 68


« Ответ #6 : 17.08.2010, 23:01:17 »

Поясните пожалуйста как это "визуально"?

Вот предыдущий автор спросил "там проверка по дочерним товарам.с ними пробовал как работает?" - тоже интересно узнать.
Записан
adjuster
Завсегдатай
*****

Репутация: +52/-2
Offline Offline

Пол: Мужской
Сообщений: 788


« Ответ #7 : 18.08.2010, 10:53:12 »

Поясните пожалуйста как это "визуально"?
Визуально - глазами в одном и том же браузере с одного и того же ИП.
Записан
GrayHunter
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 68


« Ответ #8 : 20.08.2010, 20:09:57 »

Так, скорость увеличивается. Хорошо.

А что насчёт проверки по дочерним товарам. с ними пробовали как работает?
Записан
xCoReLx
Давно я тут
****

Репутация: +7/-0
Offline Offline

Пол: Мужской
Сообщений: 273



« Ответ #9 : 21.08.2010, 21:56:12 »

хочу сообщить , что в рессии 1,1,5 это строка 66 и выглядит оно так
Код:
$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)";
} else {
$where_clause[] = "`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`";

ускорения я ни какого не заметил изменив код
Записан
beagler
Moderator
*****

Репутация: +316/-4
Offline Offline

Пол: Мужской
Сообщений: 2994


http://beagler.ru/


« Ответ #10 : 23.08.2010, 09:01:57 »

разумеется, при этом хаке про дочерние товары можно забыть, но если Вы их не используете - это для Вас.
+1
Добавил в FAQ
Записан
morph
Живу я здесь
******

Репутация: +96/-0
Offline Offline

Сообщений: 957


« Ответ #11 : 23.08.2010, 13:58:36 »

тоды можно описать что в томже файле можно грохать проверки на производителя,налоги,скидки,группы пользователей и т.п. что можно убрать если это не используется  Smiley. только вот не панацея-надо четко знать что если чтото убрать - что отвалиться  Smiley
Записан
beagler
Moderator
*****

Репутация: +316/-4
Offline Offline

Пол: Мужской
Сообщений: 2994


http://beagler.ru/


« Ответ #12 : 23.08.2010, 14:12:48 »

абсолютно верно.
Записан
xCoReLx
Давно я тут
****

Репутация: +7/-0
Offline Offline

Пол: Мужской
Сообщений: 273



« Ответ #13 : 23.08.2010, 22:22:38 »

да меня тоже интересует, как всекую хпенатень отключить, которая вообще и не будеи использоваться, чтоб повысить производительность или уменьшить запросы
Записан
skyscraper
Давно я тут
****

Репутация: +42/-2
Offline Offline

Сообщений: 265



« Ответ #14 : 25.08.2010, 11:47:14 »

х3, врубил этот QueryCache, настроил как в факе, а он грузанул файлами сервак так, что меня отключили =)
пришлось его вырубить...
вот полезная статья ещё
Записан
starttext
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #15 : 27.09.2010, 11:28:17 »

У меня чудеса происходят. Втянул в магазин немногим более 5000 товаров. Все нормально работает (на локлаке). Страницы категорий и товаров открываются быстро...
Как только добавляю хотя бы один дочерний товар - страницы категорий и страница любого товара открывается 3-5 мин! Как с этим бороться? Тут явно какой-то запрос к базе корявый, может кто подскажет как его вычислить?
Записан
starttext
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #16 : 27.09.2010, 11:36:49 »

Вот, что выдает отладка:
Информация о профиле
Application afterLoad: 0.001 seconds, 0.49 MB
Application afterInitialise: 0.062 seconds, 3.96 MB
Application afterRoute: 0.083 seconds, 5.31 MB
Application afterDispatch: 150.997 seconds, 11.38 MB
Application afterRender: 151.046 seconds, 11.69 MB
Использование памяти
12345356
Зарегистрировано запросов: 408
Это нормально для Virtuemarta?
Записан
starttext
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #17 : 27.09.2010, 12:38:57 »

Собственно вычислил запрос который 3 минуты выполняется:

Код:
SELECT DISTINCT `product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`jos_vm_category`.`category_id`,
                                `jos_vm_product`.`product_id`,`product_full_image`,`product_thumb_image`,`product_s_desc`,`product_parent_id`,`product_publish`,`product_in_stock`,`product_sku`, `product_url`,
                                `product_weight`,`product_weight_uom`,`product_length`,`product_width`,`product_height`,`product_lwh_uom`,`product_in_stock`,`product_available_date`,`product_availability`,`jos_vm_product`.`mdate`, `jos_vm_product`.`cdate`
  FROM (`jos_vm_product`, `jos_vm_category`, `jos_vm_product_category_xref`,`jos_vm_shopper_group`)
  LEFT JOIN `jos_vm_product_price`
  ON `jos_vm_product`.`product_id` = `jos_vm_product_price`.`product_id`

  LEFT JOIN `jos_vm_shopper_vendor_xref`
  ON (`jos_vm_shopper_vendor_xref`.`user_id` =64
  AND `jos_vm_shopper_vendor_xref`.`shopper_group_id`=`jos_vm_shopper_group`.`shopper_group_id`)
  WHERE (`jos_vm_product_category_xref`.`product_id`=`jos_vm_product`.`product_id` OR `jos_vm_product_category_xref`.`product_id`=`jos_vm_product`.`product_parent_id`)
 
  AND `jos_vm_product_category_xref`.`category_id`=`jos_vm_category`.`category_id`
 
  AND `jos_vm_product_category_xref`.`category_id`=1
 
  AND (`jos_vm_product`.`product_id`=`jos_vm_product_price`.`product_id` OR `jos_vm_product_price`.`product_id` IS NULL)
 
  AND `product_parent_id`=0
 
  AND `product_publish`='Y'
 
  AND `category_publish`='Y'
 
  GROUP BY `jos_vm_product`.`product_sku`
 
  ORDER BY `jos_vm_product`.`product_name` ASC
  LIMIT 0, 2000

А вот, что с ним сделать... ума не приложу
Записан
beagler
Moderator
*****

Репутация: +316/-4
Offline Offline

Пол: Мужской
Сообщений: 2994


http://beagler.ru/


« Ответ #18 : 27.09.2010, 13:01:04 »

ну, основной запрос, который вытаскивает все Ваши товары из категории с category_id=1
Записан
morph
Живу я здесь
******

Репутация: +96/-0
Offline Offline

Сообщений: 957


« Ответ #19 : 27.09.2010, 13:49:12 »

а вот почему   LIMIT 0, 2000 ?
2000 товаров на страницу?

наверно в админке и когда ВСЕ в количестве вывода на страницу )
Записан
beagler
Moderator
*****

Репутация: +316/-4
Offline Offline

Пол: Мужской
Сообщений: 2994


http://beagler.ru/


« Ответ #20 : 27.09.2010, 14:06:41 »

может быть.
все формируется в \administrator\components\com_virtuemart\html\shop_browse_queries.php
Записан
skyscraper
Давно я тут
****

Репутация: +42/-2
Offline Offline

Сообщений: 265



« Ответ #21 : 30.09.2010, 00:00:53 »

starttext, попробуй почисти от ненужных запросов типа product_weight_uom`,`product_length`,`product_width`,`product_height`,`product_lwh_uom` итд...

не, я уже поюзал по всякому, была надежда на скорость, но никак, у всех стоит кэширование в файлы?
у меня пару деньков постоял, когда делал бекап, 5 мин разархивировал папку с кэшем этого компонента... думаю проблема именно в файлах, тк у меня их там набегает около 10к, и я представляю чего стоит найти в этой папке что-нибудь... в опция компонента есть memory cache, может через оперативную память быстрее будет работать, но под это как понимаю надо сервак достраивать... и частенько вываливались ошибки, при поиске нужного запроса, при перезагрузке страницы, ошибки исчезали, но сами понимаете каково это видеть, как только вырубил компонент, грузит в 2 раза быстрее =)
есть идеи?
« Последнее редактирование: 30.09.2010, 00:07:14 от skyscraper » Записан
skyscraper
Давно я тут
****

Репутация: +42/-2
Offline Offline

Сообщений: 265



« Ответ #22 : 11.10.2010, 00:45:29 »

идей смотрю много, или никто не пользует? =)
у меня впс, на котором попробовал поставить memcache, пустил через него кеш и включил memcache в опции query cache, скорость реально почувствовал... но знающие люди посоветовали для стабильности ставить xcache без жумловского кеширования, поставил ща его, вроде всё отлично работает и летает, query cache тоже попробую протестировать на зеркальном сервере с xcache, но ещё раз повторю - никому не советую использовать кеширование через файлы, только словите тормоза и нагрузку...
Записан
palach1985
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 24


« Ответ #23 : 13.10.2010, 23:13:35 »

Это реально работает! Сайт вместо 4-5 секунд загружается за 2! Спасибо
Записан
skyscraper
Давно я тут
****

Репутация: +42/-2
Offline Offline

Сообщений: 265



« Ответ #24 : 16.10.2010, 00:35:37 »

вот ещё в помощь, одно из двух:
1)...ссылка на варез удалена....
2) Плагин JCH_Optimize я не пробовал, но говорят не хуже...

я пользую webo (без query cache), ускорил так, что странички не видно как переключаются, только фотки догружаются, ну и 1-2 сек запрос в базу ...
« Последнее редактирование: 12.01.2011, 21:27:59 от _ib_ » Записан
morph
Живу я здесь
******

Репутация: +96/-0
Offline Offline

Сообщений: 957


« Ответ #25 : 18.10.2010, 05:15:12 »

skyscraper, ты бы плз. писал что за WEBO к тебе в личку чтоли....да это действительно классная вещь, но она и платная Wink
Записан
koza777
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« Ответ #26 : 30.10.2010, 17:32:45 »

skyscraper можно по подробней про установку Webo Site Speed up?Приложение действительно классное но как установить чето не вьеду!где эти права на запись ставить если у меня сайт пока на localhost&
Записан
black#FFFFFF
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 26


« Ответ #27 : 01.11.2010, 08:30:10 »

Ускорение. Ускорение. Подкидываю идейку. Расчет цены по атрибутам. Например. Столкнулся со следующим.
/administrator/com_virtuemart/clases/ps_product.php
Код:
get_adjusted_attribute_price
есть у нас такая замечательная функция. встречается она в shop.browse.php допустим. при выводе товаров. итак. что в ней плохого? а плохое в ней вот что. нет у нее аналогов для мульти ID товаров. как в нагрузку на каждый ее вызов при листинге товаров - 2-3 запроса. Это частность! Там блин куча таких функций. Приккколььььнннноооо.
И понеслась:

Для каждого товара:
Код:
SELECT tax_rate
  FROM jos_vm_product, jos_vm_tax_rate
  WHERE product_tax_id=tax_rate_id
  AND product_id=

SELECT *
  FROM `jos_vm_product_files`
  WHERE `file_product_id`

SELECT amount,is_percent
  FROM jos_vm_product,jos_vm_product_discount
  WHERE product_id
..........................................

И так далее и тому подобное.

Не судьба видимо была разделить отдельно запросы и собрать ай ди товаров. Чтобы с помощью всего 2-3 запросов для всех товаров на странице получить информацию. А не по 2-3 запроса на каждый товар.

И что ж мы видим? Листинг 9 товаров. Обычный кэш включен. Ой как здорово! 168 запросов.
Эх. Надо будет переписывать весь этот бред. А что-то мне подсказывает, что их там может быть не больше 5 вне зависимости от количества товаров. Объеденение IN, выбор данных. И делай с ними что хочешь без дергания б.д.
« Последнее редактирование: 01.11.2010, 08:42:48 от black#FFFFFF » Записан
morph
Живу я здесь
******

Репутация: +96/-0
Offline Offline

Сообщений: 957


« Ответ #28 : 01.11.2010, 10:05:14 »

black#FFFFFF,
да вирт действительно комбайн ). много запросов сократили и переписали функциий в joosmart-вирт под joostina(если интересно - глянь)

хорошо бы мануальчик написать где в каких файлах в каких функциях что править чтобы без урезания функционала(что по возможности,так как не меняя "структуру" файлоф вирта идеала и не добиться) сократить на порядок количество запросов,но я даже не знаю каким это боком выйдет )) - разрабам думаю перпендикулярно, а сдесь описывать и потом с каждым апдейдом поддерживать,ох геморойно  Smiley

« Последнее редактирование: 01.11.2010, 10:09:51 от morph » Записан
mark111
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 63


« Ответ #29 : 07.11.2010, 10:34:22 »

Ускорение. Ускорение. Подкидываю идейку. Расчет цены по атрибутам. Например. Столкнулся со следующим.
/administrator/com_virtuemart/clases/ps_product.php
Код:
get_adjusted_attribute_price
есть у нас такая замечательная функция. встречается она в shop.browse.php допустим. при выводе товаров. итак. что в ней плохого? а плохое в ней вот что. нет у нее аналогов для мульти ID товаров. как в нагрузку на каждый ее вызов при листинге товаров - 2-3 запроса. Это частность! Там блин куча таких функций. Приккколььььнннноооо.
И понеслась:

Для каждого товара:
Код:
SELECT tax_rate
  FROM jos_vm_product, jos_vm_tax_rate
  WHERE product_tax_id=tax_rate_id
  AND product_id=

SELECT *
  FROM `jos_vm_product_files`
  WHERE `file_product_id`

SELECT amount,is_percent
  FROM jos_vm_product,jos_vm_product_discount
  WHERE product_id
..........................................

И так далее и тому подобное.

Не судьба видимо была разделить отдельно запросы и собрать ай ди товаров. Чтобы с помощью всего 2-3 запросов для всех товаров на странице получить информацию. А не по 2-3 запроса на каждый товар.

И что ж мы видим? Листинг 9 товаров. Обычный кэш включен. Ой как здорово! 168 запросов.
Эх. Надо будет переписывать весь этот бред. А что-то мне подсказывает, что их там может быть не больше 5 вне зависимости от количества товаров. Объеденение IN, выбор данных. И делай с ними что хочешь без дергания б.д.


я вот нашёл интересные советы по оптимизации любого сайта. Думаю это б очень ускорило Joomla  в том числе

# Использование построчных вставок данных, когда каждая строчка вставляется отдельным запросом. INSERT поддерживает добавление сразу сотен рядов одной командой, работает при этом в 100 раз быстрей. - это в добавление к цитате выше


# При импорте товаров в магазин для каждого товара делают SELECT - проверяя, есть ли он в базе, а потом делают INSERT. Открою секрет - есть запрос INSERT ... ON DUPLICATE KEY UPDATE, который вместо 60000 запросов в час сделает 10 и выполнит ту же работу в 6000 раз быстрей.

 Если кто использует подобное - пожалуйста поделитесь хоть чем-то т.к. нагрузка на хостинг просто жуткая(даже с кешированием)...
Записан
skyscraper
Давно я тут
****

Репутация: +42/-2
Offline Offline

Сообщений: 265



« Ответ #30 : 09.11.2010, 16:59:31 »

webo платная и не дешевая, но достаточно и нулл версии, чтобы покопать разные настройки, у меня половина не работает, некоторые ещё больше заставляют тупить, поэтому выбрал базовые настройки, кеш подкрутил с CSS... прирост есть...

тоже думаю, что было бы не плохо переделать формирование товара, но для этого надо переписать пол магаза и базу модифицировать, на вирте куча модификаций, а остальные магазы недоразвиты...

ещё поправил у себя выгрузку картинок, а то достали по одной грузиться  Smiley
/html/shop_browse.php где-то 340 строка:
Код
if( $product_thumb_image ) {
if( substr( $product_thumb_image, 0, 4)!= "http" ) {
if(PSHOP_IMG_RESIZE_ENABLE == '1') {
$product_thumb_image = $mosConfig_live_site."/components/com_virtuemart/show_image_in_imgtag.php?filename=".urlencode($product_thumb_image)."&newxsize=".PSHOP_IMG_WIDTH."&newysize=".PSHOP_IMG_HEIGHT."&fileout=";
}
 
меняем на
Код
if( $product_thumb_image ) {
if( substr( $product_thumb_image, 0, 4)!= "http" ) {
if(PSHOP_IMG_RESIZE_ENABLE == '1') {
$product_thumb_image = $mosConfig_live_site."/components/com_virtuemart/shop_image/product/".$product_thumb_image;
и взлетаем без image_tag =))
« Последнее редактирование: 12.11.2010, 15:07:13 от skyscraper » Записан
yevrowl
Давно я тут
****

Репутация: +7/-0
Offline Offline

Пол: Мужской
Сообщений: 247



« Ответ #31 : 26.11.2010, 01:30:05 »

х3, врубил этот QueryCache, настроил как в факе, а он грузанул файлами сервак так, что меня отключили =)
пришлось его вырубить...
вот полезная статья ещё
Аналогично, другие обработчики кроме File у меня к примеру вовсе недоступны...
Записан
Lester
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 24


« Ответ #32 : 27.11.2010, 14:10:48 »

Офигеть! Магазин работал нормально, но категория, в которую загружал около 3К товара - жутко начинала тормозить.

 Воспользовался советом ifx - просто летает.
Спасибо тебе дружище!
Записан
dreamark
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 30


« Ответ #33 : 29.11.2010, 10:02:07 »

а как узнать это? :
Application afterLoad:
Application afterInitialise:
Application afterRoute:
Application afterDispatch:
Application afterRender:
Записан
dreamark
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 30


« Ответ #34 : 29.11.2010, 10:18:02 »

а всё разобрался
Записан
back
Давно я тут
****

Репутация: +6/-0
Offline Offline

Пол: Мужской
Сообщений: 259


Все просто если по очереди)


« Ответ #35 : 21.12.2010, 16:14:03 »

В версии 1.1.6 для этого дела предусмотрели уже специальное условия
Код:
$tmpdb->query( "SELECT COUNT(*) AS parentcnt FROM #__{vm}_product WHERE product_parent_id>0");
$tmpdb->next_record();
if($tmpdb->f('parentcnt')>0) {
$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)";

} else {
$where_clause[] = "`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`";
}

то есть если есть product_parent товары то берется первый вариант

если нет - то второй.

Если у вас их нет и вы не планируете, то можете закоментировать все это и под ним просто написать

Код:
$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`)";

Это для 1.1.6 виртуемарта даст выиграш в один запрос, но ускорение в 10 раз уже заложено в него.
Записан
BlackinWhite
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 100


« Ответ #36 : 26.12.2010, 04:41:44 »

У меня VirtueMart 1.1.4, но у меня нет shop_browse_queries.php в  /ваш_сайт/www/administrator/components/com_virtuemart/html/
И еще такой вопрос, откуда вы берете данную статистику:
Application afterLoad: 0.000 seconds, 0.40 MB
Application afterInitialise: 0.188 seconds, 4.55 MB
Application afterRoute: 0.197 seconds, 5.46 MB
Application afterDispatch: 0.455 seconds, 18.28 MB
Application afterRender: 0.519 seconds, 19.36 MB

Заранее спасибо!
Записан
prituz
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 11


« Ответ #37 : 01.02.2011, 11:51:56 »

В админ.панели -> общие настройки -> система -> справа "Отладка системы" и "Отладка локализации"

 и еще в админ.панель. -> компоненты -> VirtueMart -> настройки -> внизу страницы "Режим отладки"

там кроме этой статистики еще много полезного...
Записан
prituz
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 11


« Ответ #38 : 01.02.2011, 11:53:15 »

а если нет файла shop_browse_queries.php то как сайт работает? Azn посмотрите внимательнее...
Записан
prituz
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 11


« Ответ #39 : 01.02.2011, 11:57:43 »

Еще народ, может кто знает, на странице категорий много запросов связанных с tax_rate, например:
SELECT tax_rate FROM jom_vm_product, jom_vm_tax_rate WHERE product_tax_id=tax_rate_id AND product_id='1234'

где можно закомментировать эти обращения, поскольку в таблицах связанных с tax записей нет, второй день копаюсь.

я думаю такой манипуляцией можно убить как минимум число запросов равное числу товаров в категории...
Записан
morph
Живу я здесь
******

Репутация: +96/-0
Offline Offline

Сообщений: 957


« Ответ #40 : 01.02.2011, 20:35:16 »

Еще народ, может кто знает, на странице категорий много запросов связанных с tax_rate, например:
SELECT tax_rate FROM jom_vm_product, jom_vm_tax_rate WHERE product_tax_id=tax_rate_id AND product_id='1234'

где можно закомментировать эти обращения, поскольку в таблицах связанных с tax записей нет, второй день копаюсь.

я думаю такой манипуляцией можно убить как минимум число запросов равное числу товаров в категории...

читаем внимательнее.хорош написано ...почти все Azn
http://joomlaforum.ru/index.php/topic,89688.msg569895.html#msg569895
Записан
Andrew1110
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 164


« Ответ #41 : 25.03.2011, 10:14:51 »


Идем вот суда: там находим файл shop_browse_queries.php
открываем и ищем 61 строчку
Код:
$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)";
заменяем ее на
Код:
$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`)";
жмакаем сохранить, обновляем файл на сервере, очищаем кэши. Радуемся жизни.



Использую связку Joomla 1.5.7 VirtueMart 1.1.3 stable что-то не могу найти строки, которую можно заменить! Может кто-нибудь подскажет, каким образом ускорить работу связки? Вообще в этой версии есть возможность описанного хака?
Записан
Andrew1110
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 164


« Ответ #42 : 25.03.2011, 11:16:56 »

Подскажите пожалуйста, вот это нормальная скорость?

•Информация о профиле•
Application afterLoad: 0.002 seconds, 0.53 MB
Application afterInitialise: 0.203 seconds, 6.06 MB
Application afterRoute: 0.203 seconds, 6.06 MB
Application afterDispatch: 0.308 seconds, 9.28 MB
Application afterRender: 0.381 seconds, 10.43 MB
Записан
Andrew1110
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 164


« Ответ #43 : 25.03.2011, 16:51:30 »

И еще ...кто подскажет под каким именем  QueryCache потом стоит в менеджере плагинов?
Записан
kiriamba
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 83


« Ответ #44 : 23.04.2011, 15:51:02 »

разумеется, при этом хаке про дочерние товары можно забыть, но если Вы их не используете - это для Вас.
+1
Добавил в FAQ

скажите на пальцах по простому что значит слова "дочерние товары" ?
Записан
yevrowl
Давно я тут
****

Репутация: +7/-0
Offline Offline

Пол: Мужской
Сообщений: 247



« Ответ #45 : 23.04.2011, 15:53:27 »

скажите на пальцах по простому что значит слова "дочерние товары" ?
Товары во вложенных категориях.
Записан
beagler
Moderator
*****

Репутация: +316/-4
Offline Offline

Пол: Мужской
Сообщений: 2994


http://beagler.ru/


« Ответ #46 : 23.04.2011, 16:46:46 »

скажите на пальцах по простому что значит слова "дочерние товары" ?
http://wedal.ru/rasshireniya_joomla/virtuemart-internet-magazin-na-joomla-chast-10-pozicii-i-svojjstva-tovarov.html
Записан
kiriamba
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 83


« Ответ #47 : 24.04.2011, 08:33:46 »

Попробовал Спасибо) ну не в 10 раз конечно но раза в 2 точно быстрее стало работать
Записан
Ex3qtR
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #48 : 13.05.2011, 15:25:10 »

Вопрос по теме : у меня почему-то при выборе способа кеширования - только файл. Как добавить эти способы кеширования?
Записан
Sedoy
Support Team
*****

Репутация: +77/-10
Offline Offline

Пол: Мужской
Сообщений: 1084


Интересно,в какой кодировке пишут врачи?


« Ответ #49 : 14.05.2011, 14:30:02 »

разумеется, при этом хаке про дочерние товары можно забыть, но если Вы их не используете - это для Вас.

вообще то это очень важное замечание
я б его "вытащил" наверх - что б не вводило в заблуждение при прочтении главного посыла - как "важно № 0!" Azn
 
Записан
al-teen
Группа развития
*****

Репутация: +111/-8
Offline Offline

Пол: Мужской
Сообщений: 1986



« Ответ #50 : 14.05.2011, 14:41:07 »

Цитировать
разумеется, при этом хаке про дочерние товары можно забыть, но если Вы их не используете - это для Вас.
Так и думал, что что то тут не то. Название топика уж очень сильно поповщиной отдает. Azn
Записан
Сергеич
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 91


« Ответ #51 : 14.06.2011, 11:59:18 »

тоды можно описать что в томже файле можно грохать проверки на производителя,налоги,скидки,группы пользователей и т.п. что можно убрать если это не используется...
Подскажите, как убрать проверку на производителя - я это значение не использую.
Заранее благодарю!
Записан
Vadim_Bone
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 41


« Ответ #52 : 28.08.2011, 23:53:49 »

Это какой-то ужас, на магазине около 3-х тыс товаров, но

Информация о профиле
Application afterLoad: 0.005 seconds, 0.39 MB
Application afterInitialise: 0.411 seconds, 4.14 MB
Application afterRoute: 2.904 seconds, 7.33 MB
Application afterDispatch: 8.967 seconds, 19.16 MB
Application afterRender: 19.196 seconds, 28.09 MB
Зарегистрировано запросов: 1708

сделал абсолютно все, что написано на форуме и получил такие космические цифры... даже не знаю что делать...народ, подскажите...
Записан
Vadim_Bone
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 41


« Ответ #53 : 03.09.2011, 15:25:54 »

никто не поможет?
Записан
2181
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 50


« Ответ #54 : 19.11.2011, 18:45:25 »

Вот, что выдает отладка:
Информация о профиле
Application afterLoad: 0.001 seconds, 0.49 MB
Application afterInitialise: 0.062 seconds, 3.96 MB
Application afterRoute: 0.083 seconds, 5.31 MB
Application afterDispatch: 150.997 seconds, 11.38 MB
Application afterRender: 151.046 seconds, 11.69 MB
Использование памяти
12345356
Зарегистрировано запросов: 408
Это нормально для Virtuemarta?

А как в Joomla 1.5 увидеть такую отладочную инфу?
Записан
ELLE
Moderator
*****

Репутация: +207/-0
Offline Offline

Пол: Женский
Сообщений: 1393



« Ответ #55 : 19.11.2011, 18:53:00 »

А как в Joomla 1.5 увидеть такую отладочную инфу?
в настройках - отладка системы - вкл.
Записан
M@X1M
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 43


« Ответ #56 : 20.11.2011, 22:24:04 »

Может кто пояснить, почему "про дочерние товары можно забыть"? У меня дочерние используются, хак применил, ничего не изменилось, только скорость загрузки реально выросла.
Правда условие взял отсюда: http://joomlaforum.ru/index.php/topic,89688.msg572160.html#msg572160

А именно, вместо:
Код:
$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)";
стало:
Код:
if( empty( $keyword ) ) {
        $where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`)";
      }
  else
      {
        $where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)";
      }
Записан
newjey
Давно я тут
****

Репутация: +2/-0
Offline Offline

Сообщений: 259


« Ответ #57 : 08.12.2011, 21:34:47 »

Идем вот суда: там находим файл shop_browse_queries.php
открываем и ищем 61 строчку
Код:
$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)";
заменяем ее на
Код:
$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id`)";
жмакаем сохранить, обновляем файл на сервере, очищаем кэши. Радуемся жизни.

Ни какой разницы не заметил:
До:
Код:
Application afterLoad: 0.000 seconds, 0.39 MB
Application afterInitialise: 0.069 seconds, 6.02 MB
Application afterRoute: 0.081 seconds, 6.99 MB
Application afterDispatch: 2.996 seconds, 16.72 MB
Application afterRender: 3.037 seconds, 17.58 MB

После:
Код:
Application afterLoad: 0.000 seconds, 0.39 MB
Application afterInitialise: 0.069 seconds, 6.04 MB
Application afterRoute: 0.084 seconds, 7.01 MB
Application afterDispatch: 2.880 seconds, 16.70 MB
Application afterRender: 2.978 seconds, 18.15 MB

Кеш очищал и пробовал в разных браузерах.

У меня в вышеприведённом файле есть похожие две строчки:
Код:
$where_clause[] = "(`#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` OR `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_parent_id`)";
$where_clause[] = "`#__{vm}_product_category_xref`.`category_id`=`#__{vm}_category`.`category_id`";

Может с этим что-то не так?
« Последнее редактирование: 08.12.2011, 21:38:05 от newjey » Записан
Страниц: 1 2 [Все]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet