• Объявления

    • dinox

      Закрытый раздел разработчиков   21.08.2017

      У нас на форуме существует закрытый раздел для разработчиков в котором мы обсуждаем нюансы работы на нашем форуме, в каталоге дополнений и другие моменты которые интересны в большинстве случаев только разработчикам. На данный момент существует лишь 2 условия для попадания:
      1. Наличие промодерированного дополнения в нашем каталоге  2. Отсуствие варезной деятельности 
      Если эти правила выполнены, пишите запрос @ArtemPitov на попадание в раздел разработчиков
stalker780

Файловое/Memcached кэширование mysqli

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

sitecreator    455

Ваш модуль дает что-то большее чем может дать кеширование запросов силами самой mysql?

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


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

Ну он как минимум умеет кешировать запросы с NOW() коих в стандартом OC/ocStore валом. Причем, жизненно важных (SELECT * FROM product WHERE date_available <= NOW())...

Плюс неоднократно сталкивался с дешевыми хостингами, у которых попросту кеш mysql отключен или установлен в 1Мб.

Изначально, модуль писался для товарища, у которого дешманский хостинг ограничивает количество sql запросов в минуту, а после апгрейда сайта с OC 1.0 на OC 1.5 количество запросов выросло в десятки раз. Результатом внедрения модуля, стало практически 0 кол-во запросов + возросшая скорость отдачи страниц.

Сейчас на подходе версия, умеющая автоматом подхватывать memcache(d) (при его наличии, конечно же) на локалхосте и использующая его в качестве хранилища кеша.

Кстати, даже с включенным кешем mysql, при использовании memcached я вижу 20-40% прирост в скорости открытия страниц. Так, что кеш mysql тоже не так быстр, как хотелось бы. Похоже много времени занимает само подключение к серверу mysql.

PS
Вряд ли для человека, хорошо знающего OpenCart и умеющего правильно настроить VPS, этот модуль станет полезным. Можно прописать кеш в моделях + поставить выложенный здесь же на форуме модуль кеширования memcached. Я просто объединил этот функционал и кеширую ВСЕ Select'ы, кроме вписанных в исключения.
Более того, на одном из хостингов были даже замечены значительные тормоза после установки этого модуля. Подозрения на мертвую файловую систему на серваке.

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


Ссылка на сообщение
Поделиться на другие сайты
sitecreator    455
Плюс неоднократно сталкивался с дешевыми хостингами, у которых попросту кеш mysql отключен или установлен в 1Мб.

 

 

с дешевыми, это вы верно заметили, в этом плане просто беда.

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


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

Как минимум мой умеет чистить кеш при INSERT/UPDATE/DELETE, тоесть обновление данных происходит прозрачно для юзера, как только он вносит изменения в админке

+ массив с исключениями, при нахождении которых кеш не чистится

+ mysqli

+ встроенный монитор медленных запросов

 

+ как я уже писал выше, на подходе версия с авто-memcached

+ в новой версии будет массив исключений с некешируемыми запросами

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


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

при любом INSERT/UPDATE/DELETE ? нет проверки на таблицу?

ну мемкеш недолго прикрутить, остальное ерунда.

т.е. по сути ничего нового?

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


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

при любом INSERT/UPDATE/DELETE ? нет проверки на таблицу?

ну мемкеш недолго прикрутить, остальное ерунда.

т.е. по сути ничего нового?

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

А что можно придумать нового в связке php+mysql? :)

Опять же работа ведется, контроллер обкатывается на разных сайтах и хостингах, вносятся правки. Хочется надеятся, что когда-нить найду дешевую панацею от тормозов связанных с БД :)

 

Повторюсь:

Вряд ли для человека, хорошо знающего OpenCart и умеющего правильно настроить VPS, этот модуль станет полезным. Можно прописать кеш в моделях + поставить выложенный здесь же на форуме модуль кеширования memcached. Я просто объединил этот функционал

 

По отдельности все это есть на этом форуме и других профильных бесплатно. Цель была все объединить.

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


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

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

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


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

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

Кеш на диске устроен по принципу стандартного класса $this->cache с небольшой доработкой в виде отключения сортировки у glob - работает быстрее, но при увеличении кол-ва файлов glob в любом случае начинает тормозить. На своем хостинге тестировал, тормоза начинаются где-то после 5000 файлов в кеше.

Поэтому и введен массив с исключениями из кеширования. Он позволяет более гибко настроить кеш и исключить незначительные мелкие запросы.

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


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

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

 

Болагодаря парсингу, теперь не происходит полный сброс файлового кеша при апдейтах. Модуль знает какая таблица обновилась и чистит только ее кеш.

 

Модуль теперь умеет кешировать не все, а только медленные запросы. Скорость медленных запросов настраивается в параметрах.

 

Новая версия проходит усиленное тестирование.

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

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


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

Купила, очень довольна. Сайт стал летать. Спасибо))

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


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

Купила, очень довольна. Сайт стал летать. Спасибо))

Спасибо за спасибо ;)

 

Держите меня в курсе, как будет себя вести сайт.

 

Обновил файл:

  • + Добавлена замена NOW() на текущую дату в SELECT запросах, это позволяет серверу Mysql самостоятельно кэшировать запросы (при правильной настройке сервера)
  • + 2 новых параметра настройки:
  • $this->replace_date = true;
  • $this->replace_date_format = "Y-m-d";

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


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

Скачала обновлённый файл, к сожалению у меня ошибка: 

Warning: MemcachePool::set() [memcachepool.set]: The lowest two bytes of the flags array is reserved for pecl/memcache internal use in /...../system/database/mysqli_cached.php on line 448

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


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

Скачала обновлённый файл, к сожалению у меня ошибка: 

Warning: MemcachePool::set() [memcachepool.set]: The lowest two bytes of the flags array is reserved for pecl/memcache internal use in /...../system/database/mysqli_cached.php on line 448

Честно говоря эта ошибка должна была у вас вылезти и на более ранних версиях :)

Была проблема в работе с memcache. Я его практически не проверял, т.к. на всех серверах пользуюсь memcached, а у них как оказалось разный синтаксис комманды set.

 

Ошибку поправил. Скачайте последнюю версию.

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


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

В ранней версии всё в порядке, ошибки нет.

Скачала последнюю версию, слетел мой дизайн и стал дефолтовый, не находит категории сайта: Category not found! Почему то стал английский язык.

И ошибки:

 

Notice: Trying to get property of non-object in /..../index.php on line 57
Notice: Trying to get property of non-object in /..../index.php on line 66
Warning: Invalid argument supplied for foreach() in /..../index.php on line 66
Notice: Trying to get property of non-object in /..../index.php on line 74

 

index.php:

if ($store_query->num_rows) {	$config->set('config_store_id', $store_query->row['store_id']);} else {	$config->set('config_store_id', 0);}		// Settings$query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0' OR store_id = '" . (int)$config->get('config_store_id') . "' ORDER BY store_id ASC");foreach ($query->rows as $setting) {	if (!$setting['serialized']) {		$config->set($setting['key'], $setting['value']);	} else {		$config->set($setting['key'], unserialize($setting['value']));	}}if (!$store_query->num_rows) {	$config->set('config_url', HTTP_SERVER);	$config->set('config_ssl', HTTPS_SERVER);	}

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


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

Странно... Какая у вас версия OC?

Кэш чистили?

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


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

Странно... Какая у вас версия OC?

Кэш чистили?

 

А у Вас в модуле mysqli используется? Проблема явно в MySQLi. Решаема.

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


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

Будет ли работать на чистом Opencart 1.5.1.3 ?

Для php-5.2.17-37 что лучше mysql или mqsqli ?

Есть ли смысл в данном модуле если уже использую для кеширования это https://opencartforum.com/files/file/1751-turbocache-%D0%B4%D0%BB%D1%8F-ocstore/

это https://opencartforum.com/files/file/1337-mcj-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5-%D0%BE%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8-%D1%81%D0%B6%D0%B0%D1%82%D0%B8%D0%B5-css-js/

и это https://opencartforum.com/files/file/59-memcache-support/

На сколько возрастет время генерации страницы?

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


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

Будет ли работать на чистом Opencart 1.5.1.3 ?

Будет. И на 1.4 и на 2.0.

 

Для php-5.2.17-37 что лучше mysql или mqsqli ?

Начиная с PHP 4.1.3 есть поддержка mysqli. Начиная с PHP 5.5 поддержка mysql прекращена. Разницы в скорости работы между mysql и mysqli нет.

http://phpclub.ru/talk/threads/mysqli-vs-mysql.57643/

 

Есть ли смысл в данном модуле если уже использую для кеширования это https://opencartforum.com/files/file/1751-turbocache-для-ocstore/

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

Мой же модуль автоматически определяет тяжелые запросы и автоматом кеширует/оптимизирует их.

 

Мой модуль на работу с JS/CSS не влияет.

 

Поддержка memcache/memcached встроена и для localhost определяется автоматически.

 

На сколько возрастет время генерации страницы?

Этого я думаю вам никто не скажет :) Все зависит от конфигурации вашего хостинга и структуры SQL-запросов. Слишком много неизвестных.

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

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


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

У меня на сайте около 250 категорий, из за них страницы очень долго загружаются, Ваш модуль может справиться с этой проблемой. Если так, тогда сразу и куплю! Какие данные нужно для того, чтобы Вы могли точно сказать?

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


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

У меня на сайте около 250 категорий, из за них страницы очень долго загружаются, Ваш модуль может справиться с этой проблемой. Если так, тогда сразу и куплю! Какие данные нужно для того, чтобы Вы могли точно сказать?

90%, что поможет. Особенно если у вас есть подсчет кол-ва товаров в категории.

Попробуйте поставьте модуль https://opencartforum.com/files/file/1629-opencart-profiler-vqmod/

С его помощью Вы сможете увидеть, есть ли у Вас медленные sql-запросы

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


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

Связано ли с этим, но после установки драйвера, который безумно помог сайту и он теперь действительно летает при попытке бэкапа выдается следующее: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 85 bytes) in /home/kolgotki/***/www/system/database/mysqli_cached.php on line 366

Хелп! :)

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


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

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

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


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

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

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

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

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

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

Войти

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

Войти


  • Похожий контент

    • От markimax


      Просмотр файла Jet Cache :: SEO CMS Джет Кеш - кеширование для магазинов

       

      Логин / пароль:
      demo / demo
       
      Документация  
      Более 8000 интернет магазинов выбрали SEO CMS для работы
      SEO CMS JET CACHE :: Jet Cache - быстрая система кеширования страниц, контроллеров и методов моделей opencart
      Возможности
       
      - кеширует полностью страницы  
      - кеширует выбранные контроллеры  
      - кеширует методы моделей opencart  
      - простая установка и обновление  
      - гибкие настройки  
      - поддержка мультиязычности  
      - поддержка мультимагазинов  
      - поддержка протоколов https и http  
      - гибкая взаимосвязь с любым функционалом платформы SEO CMS  
      - совместимость с любой темой, любыми модулями, которые соответствуют стандартам программирования  
      - поддержка кеширования sitemap Чем модуль лучше других
       
      - уникальные технологии кеширования не имеющие аналогов в opencart  
      - модуль работает с любыми темами и модулями Требования
       
      Opencart 2.x или любая сборка на нем (ocStore, Opencart.PRO, или другие) PHP 5.3 или выше Модуль НЕ заменяет файлы системы Модуль НЕ использует ioncube  
      Совместимость модуля
       
      Opencart 2.x или любая сборка на нем (ocStore, Opencart.PRO, или другие) Любая тема или любые модули (которые сделаны без ошибок, согласно стандартов программирования или верстки) для оpencart 2.x  
      Установка, настройка
       
      Если пользователь хочет чтобы сотрудник службы технической поддержки проделал работу по установке и настройке модуля вместо пользователя на сервере пользователя, это уже услуга + 590 рублей  
      Лицензия Все права на модуль принадлежат разработчикам opencartadmin.com Условия использования лицензии: один домен - одна лицензия (покупка продукта для каждого домена). Условия использования лицензии - "на владельца". Далее... Добавил markimax Добавлено 15.03.2017 Категория Модули Системные требования PHP 5.3+ Сайт разработчика https://opencartadmin.com/seo-cms-jet-cache.html Старая цена 590 Метод активации Через официальный сайт дополнения Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х  
    • От freebooter
      Подскажите, какой модуль для автоматической очистки кэша ("VQMOD Clear all Opencart cache" или его аналог) пойдёт для ocstore 2.1.0.2.1.
      Есть бесплатная версия? Поделитесь плз ссылкой.
    • От markimax

       

      Логин / пароль:
      demo / demo
       
      Документация  
      Более 8000 интернет магазинов выбрали SEO CMS для работы
      SEO CMS JET CACHE :: Jet Cache - быстрая система кеширования страниц, контроллеров и методов моделей opencart
      Возможности
       
      - кеширует полностью страницы  
      - кеширует выбранные контроллеры  
      - кеширует методы моделей opencart  
      - простая установка и обновление  
      - гибкие настройки  
      - поддержка мультиязычности  
      - поддержка мультимагазинов  
      - поддержка протоколов https и http  
      - гибкая взаимосвязь с любым функционалом платформы SEO CMS  
      - совместимость с любой темой, любыми модулями, которые соответствуют стандартам программирования  
      - поддержка кеширования sitemap Чем модуль лучше других
       
      - уникальные технологии кеширования не имеющие аналогов в opencart  
      - модуль работает с любыми темами и модулями Требования
       
      Opencart 2.x или любая сборка на нем (ocStore, Opencart.PRO, или другие) PHP 5.3 или выше Модуль НЕ заменяет файлы системы Модуль НЕ использует ioncube  
      Совместимость модуля
       
      Opencart 2.x или любая сборка на нем (ocStore, Opencart.PRO, или другие) Любая тема или любые модули (которые сделаны без ошибок, согласно стандартов программирования или верстки) для оpencart 2.x  
      Установка, настройка
       
      Если пользователь хочет чтобы сотрудник службы технической поддержки проделал работу по установке и настройке модуля вместо пользователя на сервере пользователя, это уже услуга + 590 рублей  
      Лицензия Все права на модуль принадлежат разработчикам opencartadmin.com Условия использования лицензии: один домен - одна лицензия (покупка продукта для каждого домена). Условия использования лицензии - "на владельца". Далее...
    • От p0v1n0m


      Просмотреть файл Чистильщик кэша и логов
      Модуль поможет очистить кэш и логи одним кликом, находясь на любой странице админки.
       
      Установка:
      1. Загрузить скачанный архив для своей версии движка через Установщик дополнений.
      2. Очистить и Обновить кэш в Менеджере дополнений.
      3. В разделе Система > Пользователи > Группы пользователей выставить модулю все права.
      4. Установить и включить модуль.
      Автор p0v1n0m Добавлен 15.08.2016 Категория Модули Системные требования Сайт разработчика Старая цена Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop  
    • От p0v1n0m
      Модуль поможет очистить кэш и логи одним кликом, находясь на любой странице админки.
       
      Установка:
      1. Загрузить скачанный архив для своей версии движка через Установщик дополнений.
      2. Очистить и Обновить кэш в Менеджере дополнений.
      3. В разделе Система > Пользователи > Группы пользователей выставить модулю все права.
      4. Установить и включить модуль.
  • Последние посетители   0 пользователей онлайн

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