Перейти к содержанию
prosp

Долгая загрузка url rewrite

Рекомендуемые сообщения

Версия магазина: OpenCart 1.5.1.1
Изменения вносились, что касаемо этой ошибки модуль: SeoPack. файл: /system/library/url
Хостинг у хостера.
 
Проблема:
Долгая загрузка страницы, более 6 секунд из-за одной функции.
 
Разбор лога долгой загрузки, более 12 секунд:

 

23:21:23 - 0.76840 SELECT * FROM oc_weight_class wc LEFT JOIN oc_weight_class_description wcd ON (wc.weight_class_id = wcd.weight_class_id) WHERE wcd.language_id = '2'
23:21:26 - 0.50339 SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '0' AND cd.language_id = '2' AND c2s.store_id = '0'  AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)
23:21:29 - 0.60396 SELECT * FROM oc_url_alias WHERE `query` = 'category_id=32'
23:21:31 - 0.78631 SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '57' AND cd.language_id = '2' AND c2s.store_id = '0'  AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)
23:21:34 - 0.76840 |     1 | /home/p/*/*/public_html/index.php(210)
23:21:34 - 1.81848 |     7 | /home/p/*/*/public_html/vqmod/vqcache/vq2-catalog_controller_common_header.php(104)
23:21:34 - 6.74256 |    47 | /home/p/*/*/public_html/system/library/url.php(64)

Далее захожу в файл /system/library/url перехожу на 64 строчку и вижу вот это:
 

public function addRewrite($hook) {
$this->hook[] = $hook;
}
 
public function rewrite($url) {
foreach ($this->hook as $hook) {
$url = $hook->rewrite($url);  // Вот эта строка
}

Прошу помощи, заранее благодарен

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты


Для начала:

ALTER TABLE `oc_url_alias` ADD INDEX `query` ( `query` );

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за совет, сделано.
А в чём отличие от:

ALTER TABLE `oc_url_alias` CREATE INDEX `query` ( `query` );

Так же бывает проблема долгой загрузки сайта из-за получения кеша. В логах не отображается.

+ Ко всему часто долго загружаются данные с adblock, проверял на 5ти компьютерах с добавленным приложением adblock в chrome.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за совет, сделано.

А в чём отличие от:

ALTER TABLE `oc_url_alias` CREATE INDEX `query` ( `query` );

Так же бывает проблема долгой загрузки сайта из-за получения кеша. В логах не отображается.

+ Ко всему часто долго загружаются данные с adblock, проверял на 5ти компьютерах с добавленным приложением adblock в chrome.

1. Разницы нет

2. Сколько файлов в папке system/cache?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 файла в system/cache без индекса

42 файла в vqmod/vqcache

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Судя по всему у вас на сайте немало категорий. У вас в шапке сайта строится дерево категорий для отображения меню. И происходит это каждый раз. У вас там рекурсивный алгоритм построения дерева категорий.

Если у вас в шапке сайта категории не нужны, то просто удалить их загрузку в header.php.

Если нужны - сделать ее не рекурсивной. Ну и кэшировать.

 

Слоу-лог не совсем показателен. В вашем случае OpenCart генерирует пачки быстрых запросов, которые в слоу-лог могут и не попасть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу, помогите..
 

13:57:26 - --------------------
13:57:35 - 0.52979 SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '25' AND cd.language_id = '2' AND c2s.store_id = '0'  AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)
13:57:43 - 0.55403 SELECT * FROM oc_information i LEFT JOIN oc_information_description id ON (i.information_id = id.information_id) LEFT JOIN oc_information_to_store i2s ON (i.information_id = i2s.information_id) WHERE id.language_id = '2' AND i2s.store_id = '0' AND i.status = '1' ORDER BY i.sort_order, LCASE(id.title) ASC
13:57:49 - ----------
13:57:49 - 1.79631 |     7 | /home/p/*/*/public_html/vqmod/vqcache/vq2-catalog_controller_common_header.php(104)
13:57:49 - 4.62884 |    18 | /home/p/*/*/public_html/catalog/controller/module/category_menu.php(210)
13:57:49 - 8.89323 |   106 | /home/p/*/*/public_html/system/library/url.php(64)
13:57:49 - ----------
13:57:49 - 23.00746 |   189 | /%D0%92%D0%BF%D1%83%D1%81%D0%BA/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BA%D1%83%D0%BB%D0%B5%D1%80-%D0%9F%D0%B0%D0%B9%D0%BF%D0%B8%D0%BD%D0%B3/%D0%9F%D0%B0%D0%B9%D0%BF%D0%B8%D0%BD%D0%B3-76%D0%BC%D0%BC
13:57:49 - --------------------

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это у вас при включенном seopro такая штука? Сейчас у вас сайт работает довольно быстро.

Проверьте версию seopro, вот это https://github.com/myopencart/ocStore/blob/e941f63c7def49f3928ae6fc2a98327052aeb4b7/catalog/controller/common/seo_pro.php должна быть побыстрее

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу прощения, не правильно назвал модуль. У меня SeoPack за 60$ купленный на opencart.com
И url.php не заменялся, но я чем-то действительно его менял, потому что вижу в папке url_copy.php..
Сейчас посмотрю что я ставил.

Нашёл, это купленный тут модуль simple 3.8.3. Url.php менялся после этого модуля

Я так понимаю, лучше написать в этом случае владельцу модуля?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.