kikasso Опубліковано: 17 березня 2013 Share Опубліковано: 17 березня 2013 (змінено) Постановка задачи: оптимизировать клиентскую часть, для сайта с несколькими сотнями товаров, с использованием мультиязычности и SEO (генерация страницы не более 0,2с). В качестве пациента для экспериментов был взят OpenCart 1.5.5.1 с дефолтной базой. Для поиска узких мест начнём с профилирования, анализируем результаты загрузки главной страницы (в листинге и карточке товара получаются аналогичные результаты): Как и ожидалось, почти половину времени тратиться на запросы к БД, вот и займемся этой частью, не будем экономить на спичках. Простеньким скриптом собираем массив с данными выполнения запросов для анализа (ключами являются методы функций из которых делался запрос к БД, значениями кол-во таких запросов). Видим, что точек вызова не так уж много - 15, но это не одинаковые запросы, для большинства повторений SQL код разный. Править php код и SQL запросы, заниматься денормализацией БД не интересно, хочется более кастомного и простого решения с использованием кэша. Основная проблема при его использовании - инвалидация, так: по времени - сайт будет тормозить в момент обновления кэша по событию - много правок в коде надо делать, не подходит... зависимости? - легче движок переписать :) Попробуем схитрить, записи в хэш таблице обновлять порциями не более N штук, по факту просмотра страницы, тем самым рассредоточив нагрузку. Время жизни тоже можно сделать разным, для разных типов данных (классифицируем по имени метода функции). Хочется еще сократить кол-во запросов при обращение к кэшу, тэгирование излишне для нашей задачи, будем просто объединять в группы. Например: настройки, курсы валют, единицы измерения - то что от страницы к странице одинаково грузить пачкой, товары будут браться из кэша отдельно. Приступаем к реализации идеи, кэш будем хранить в БД, для возможности реализации "хитростей", файлы не подойдут. Хэш таблица не станет узким местом, запросы по уникальному ключу будут быстрые, главное их кол-во сократить к минимуму. Дальше кодим и получаем вот такой результат (время/количество запросов): Может еще можно что то глобально ускорить? повторный профайл: запросы к БД уступили лавру первенства, теперь нет особо нагруженных частей... закончили. Результат устраивает, довольно потираем руки :). Выводы: Данное решение позволяет в 4-7 раз увеличить производительность сайта! Можно ещё экспериментировать с настройкой групп, времени жизни и размером порций обновления кэша (N). Файлы выкладываю на gist. Приветствуется конструктивная критика, пожелания и замечания. Полезные ссылки по теме: - клиентская оптимизация OpenCart - Отладчик для OpenCart - профилирование PHP кода - Кеширование на клиенте и на сервере (ШРИ в Москве 2012) Желаю всем быстрых сайтов! Змінено 18 березня 2013 користувачем kikasso 5 Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 18 березня 2013 Share Опубліковано: 18 березня 2013 Вы кажется забыли подключить файл статик.пхп require_once(DIR_SYSTEM . 'library/static.php'); И еще забыли закрыть тег пхп в \system\library\static.php И еще забыли в запросе к бд учесть, что не у всех префикс к базе - ос_ Но в итоге у меня все равно не заработало :-) Notice: unserialize() [function.unserialize]: Error at offset 65531 of 65535 bytes in Z:\home\localhost\ocstore1521\system\database\mysql.php on line 95Notice: Trying to get property of non-object in Z:\home\localhost\ocstore1521\index.php on line 70 Warning: Invalid argument supplied for foreach() in Z:\home\localhost\ocstore1521\index.php on line 70 Возможно дело в версии, хотя вообще странно, что вы взяли ту версию (1551), которую здесь почти никто не использует. Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Вы кажется забыли подключить файл статик.пхп require_once(DIR_SYSTEM . 'library/static.php'); И еще забыли закрыть тег пхп в \system\library\static.php И еще забыли в запросе к бд учесть, что не у всех префикс к базе - ос_ Но в итоге у меня все равно не заработало :-) Возможно дело в версии, хотя вообще странно, что вы взяли ту версию (1551), которую здесь почти никто не использует. выложенные файлы, не претендуют на пошаговую инструкцию :) (в выложенных файлах добавил комментарий в качестве памятки) тег <?php не закрываю по привычке, сейчас это уже общепризнанный стандарт раздел PSR-1 OpenCart 1.5.5.1 - т.к. выбрал его для своего проекта, лучше всего подходил по требованиям из коробки а какая у вас версия? в хэш таблицу что нибудь пишется? Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 18 березня 2013 Share Опубліковано: 18 березня 2013 1521 в таблице данные есть, с виду там все корректно, но на сайте кроме этих предупреждений перестали работать практически все модули, пропали картинки, пропал блок категорий, пропал фильтрпро, зато дебаггер показывает реальное уменьшение запросов до 1-2) PS Поставил на 1541, завелось почти сразу, но заметил интересный баг - у меня там чистая сборка, и после добавления изменений из темы, перестали сохранятся настройки, т.е. ВООБЩЕ любые настройки, внесенные в админку, не сохраняются после нажатия кнопки сохранить. Если дропнуть таблицу кеша, то настройки начинают сохранятся. Такие дела :) PPS Еще в админке нужно подключить static.php Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Вот и баги полезли)) Спасибо за помощь! Проблему решаем отключением кэша для админки для этого: - в файл \admin\config.php добавить строчку - define('IS_ADMIN', true); - код формирования кэша обернуть в условие if(!defined('IS_ADMIN')){ ... } файлы на гист обновил Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 18 березня 2013 Share Опубліковано: 18 березня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?) Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Поступили сигналы о несовместимости с некоторыми расширениями, для решения этой проблемы добавлено возможность отключать кэширование определённых моделей. установкой в массиве конфигруции значения expire = false, это еще пригодится и для данных, которые по определению не нужно кэшировать. Для грубой отладки, можно использовать в mysql.php две строчки var_dump($method. ' ('. $caller[2]['line']. ')'); //вывод места откуда вызывается запрос var_dump($sql);//текст запроса Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?) решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Надіслати Поділитися на інших сайтах More sharing options... 2 months later... bdenisska Опубліковано: 22 травня 2013 Share Опубліковано: 22 травня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?)решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Здравствуйте, каким образом настроить кеширование только емких запросов? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Vladzimir Опубліковано: 5 серпня 2013 Share Опубліковано: 5 серпня 2013 Интересует такой вопрос. Почему если отключить method, то кеш все равно пишется в БД? По логике вещей ведь кешировать нужно только то что разрешено. И хотелось бы понять причину по которой данное решение не совместимо с некоторыми дополнениями. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... kikasso Опубліковано: 16 вересня 2013 Автор Share Опубліковано: 16 вересня 2013 к серверной оптимизации так же можно отнести, настройку HTTP заголовков Last-Modified и If-Modified-Since, это позволит снизить нагрузку на сервер и упростит жизнь поисковым ботам (ускорит индексацию). Подробнее что это такое и как готовить, уже обсуждалось на форуме Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 kikasso, большое спасибо! Молодец, на maxystore 1.5.5.1 с товаром +/- 2тыс ускорение в 4 раза точно!!! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 Решение кончено имеет право на жизнь, только в MySQL уже есть кэширование И неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. SQL-кэш к стати куда быстрее файлового работает, так как в нем заключена вся мощь СУБД. Если вы свою теорию проверите на практике, поделитесь успехами - интересно как можно обойти кэширование запросов, например, содержимого корзины...? и ведь если выполнялось пол тысячи запросов к БД при обращении к странице, так пол тысячи выполняться и будет при включено MySQL кэше... да быстрее, но вопрос на сколько? поэтому очень интересна обоснованность фразы "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" Еще я бы фразу Надо лишь настроить сервер - выделил жирным и перекрасил в красный цвет, т.к. для большинства актуально использование виртуального хостинга, что и у меня было в исходных данных к заданию, а это требование отсекает ваш теоретический вариант с MySQL кэшем. За ссылку на информацию по MySQL кэшу спасибо, первый раз слышу, никогда не использовал! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 @toporchillo нашел вашу статью по оптимизации SQL запросов в OpenCart 1.5.5.1, на которую вы ссылаетесь в этом топике. Там хорошее начало про высокие нагрузки, про беду теоретических споров... а вот самого главного, какой профит можно получить от проделанной работы, нет. Не понятно, то ли это экономия на спичках, то ли стоящая затея (и демо сайт чтобы посчупать, к сожалению не работает). Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 А давайте вы произведете замеры. Пожалуй так будет справедливо. Тем более, что у вам прекрасные инструменты. Изменения описанные в статье внесены в актуальную сборку ocStore в оригинальном OpenCart их нет. OpenCart vs OcStore. Самому интересно в конкретных цифрах. произведу, только если вы обоснуете фразу "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее", говоря что с встроенным кэшем в MySQL будет работать быстрее вы со мной делитесь интересующей меня информацией, я вам помогаю с интересующими цифрами по производительности - вот так справедливо:) Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 Также можно загружать данные не в цикле, а одним запросом. Нужно сначала собрать массив найденных product_id, а потом в запросе использовать условие p.product_id IN(...). Оказалось что лучше 20 запросов на каждый товар нежели один. Суммарное время выполнения по очереди 20 getProduct оказалось почти в 5 раз быстрее чем один запрос с p.product_id IN(...). 2 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
RGB Опубліковано: 18 березня 2013 Share Опубліковано: 18 березня 2013 Вы кажется забыли подключить файл статик.пхп require_once(DIR_SYSTEM . 'library/static.php'); И еще забыли закрыть тег пхп в \system\library\static.php И еще забыли в запросе к бд учесть, что не у всех префикс к базе - ос_ Но в итоге у меня все равно не заработало :-) Notice: unserialize() [function.unserialize]: Error at offset 65531 of 65535 bytes in Z:\home\localhost\ocstore1521\system\database\mysql.php on line 95Notice: Trying to get property of non-object in Z:\home\localhost\ocstore1521\index.php on line 70 Warning: Invalid argument supplied for foreach() in Z:\home\localhost\ocstore1521\index.php on line 70 Возможно дело в версии, хотя вообще странно, что вы взяли ту версию (1551), которую здесь почти никто не использует. Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Вы кажется забыли подключить файл статик.пхп require_once(DIR_SYSTEM . 'library/static.php'); И еще забыли закрыть тег пхп в \system\library\static.php И еще забыли в запросе к бд учесть, что не у всех префикс к базе - ос_ Но в итоге у меня все равно не заработало :-) Возможно дело в версии, хотя вообще странно, что вы взяли ту версию (1551), которую здесь почти никто не использует. выложенные файлы, не претендуют на пошаговую инструкцию :) (в выложенных файлах добавил комментарий в качестве памятки) тег <?php не закрываю по привычке, сейчас это уже общепризнанный стандарт раздел PSR-1 OpenCart 1.5.5.1 - т.к. выбрал его для своего проекта, лучше всего подходил по требованиям из коробки а какая у вас версия? в хэш таблицу что нибудь пишется? Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 18 березня 2013 Share Опубліковано: 18 березня 2013 1521 в таблице данные есть, с виду там все корректно, но на сайте кроме этих предупреждений перестали работать практически все модули, пропали картинки, пропал блок категорий, пропал фильтрпро, зато дебаггер показывает реальное уменьшение запросов до 1-2) PS Поставил на 1541, завелось почти сразу, но заметил интересный баг - у меня там чистая сборка, и после добавления изменений из темы, перестали сохранятся настройки, т.е. ВООБЩЕ любые настройки, внесенные в админку, не сохраняются после нажатия кнопки сохранить. Если дропнуть таблицу кеша, то настройки начинают сохранятся. Такие дела :) PPS Еще в админке нужно подключить static.php Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Вот и баги полезли)) Спасибо за помощь! Проблему решаем отключением кэша для админки для этого: - в файл \admin\config.php добавить строчку - define('IS_ADMIN', true); - код формирования кэша обернуть в условие if(!defined('IS_ADMIN')){ ... } файлы на гист обновил Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 18 березня 2013 Share Опубліковано: 18 березня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?) Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Поступили сигналы о несовместимости с некоторыми расширениями, для решения этой проблемы добавлено возможность отключать кэширование определённых моделей. установкой в массиве конфигруции значения expire = false, это еще пригодится и для данных, которые по определению не нужно кэшировать. Для грубой отладки, можно использовать в mysql.php две строчки var_dump($method. ' ('. $caller[2]['line']. ')'); //вывод места откуда вызывается запрос var_dump($sql);//текст запроса Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?) решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Надіслати Поділитися на інших сайтах More sharing options... 2 months later... bdenisska Опубліковано: 22 травня 2013 Share Опубліковано: 22 травня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?)решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Здравствуйте, каким образом настроить кеширование только емких запросов? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Vladzimir Опубліковано: 5 серпня 2013 Share Опубліковано: 5 серпня 2013 Интересует такой вопрос. Почему если отключить method, то кеш все равно пишется в БД? По логике вещей ведь кешировать нужно только то что разрешено. И хотелось бы понять причину по которой данное решение не совместимо с некоторыми дополнениями. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... kikasso Опубліковано: 16 вересня 2013 Автор Share Опубліковано: 16 вересня 2013 к серверной оптимизации так же можно отнести, настройку HTTP заголовков Last-Modified и If-Modified-Since, это позволит снизить нагрузку на сервер и упростит жизнь поисковым ботам (ускорит индексацию). Подробнее что это такое и как готовить, уже обсуждалось на форуме Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 kikasso, большое спасибо! Молодец, на maxystore 1.5.5.1 с товаром +/- 2тыс ускорение в 4 раза точно!!! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 Решение кончено имеет право на жизнь, только в MySQL уже есть кэширование И неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. SQL-кэш к стати куда быстрее файлового работает, так как в нем заключена вся мощь СУБД. Если вы свою теорию проверите на практике, поделитесь успехами - интересно как можно обойти кэширование запросов, например, содержимого корзины...? и ведь если выполнялось пол тысячи запросов к БД при обращении к странице, так пол тысячи выполняться и будет при включено MySQL кэше... да быстрее, но вопрос на сколько? поэтому очень интересна обоснованность фразы "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" Еще я бы фразу Надо лишь настроить сервер - выделил жирным и перекрасил в красный цвет, т.к. для большинства актуально использование виртуального хостинга, что и у меня было в исходных данных к заданию, а это требование отсекает ваш теоретический вариант с MySQL кэшем. За ссылку на информацию по MySQL кэшу спасибо, первый раз слышу, никогда не использовал! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 @toporchillo нашел вашу статью по оптимизации SQL запросов в OpenCart 1.5.5.1, на которую вы ссылаетесь в этом топике. Там хорошее начало про высокие нагрузки, про беду теоретических споров... а вот самого главного, какой профит можно получить от проделанной работы, нет. Не понятно, то ли это экономия на спичках, то ли стоящая затея (и демо сайт чтобы посчупать, к сожалению не работает). Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 А давайте вы произведете замеры. Пожалуй так будет справедливо. Тем более, что у вам прекрасные инструменты. Изменения описанные в статье внесены в актуальную сборку ocStore в оригинальном OpenCart их нет. OpenCart vs OcStore. Самому интересно в конкретных цифрах. произведу, только если вы обоснуете фразу "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее", говоря что с встроенным кэшем в MySQL будет работать быстрее вы со мной делитесь интересующей меня информацией, я вам помогаю с интересующими цифрами по производительности - вот так справедливо:) Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 Также можно загружать данные не в цикле, а одним запросом. Нужно сначала собрать массив найденных product_id, а потом в запросе использовать условие p.product_id IN(...). Оказалось что лучше 20 запросов на каждый товар нежели один. Суммарное время выполнения по очереди 20 getProduct оказалось почти в 5 раз быстрее чем один запрос с p.product_id IN(...). 2 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Вы кажется забыли подключить файл статик.пхп require_once(DIR_SYSTEM . 'library/static.php'); И еще забыли закрыть тег пхп в \system\library\static.php И еще забыли в запросе к бд учесть, что не у всех префикс к базе - ос_ Но в итоге у меня все равно не заработало :-) Возможно дело в версии, хотя вообще странно, что вы взяли ту версию (1551), которую здесь почти никто не использует. выложенные файлы, не претендуют на пошаговую инструкцию :) (в выложенных файлах добавил комментарий в качестве памятки) тег <?php не закрываю по привычке, сейчас это уже общепризнанный стандарт раздел PSR-1 OpenCart 1.5.5.1 - т.к. выбрал его для своего проекта, лучше всего подходил по требованиям из коробки а какая у вас версия? в хэш таблицу что нибудь пишется? Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 18 березня 2013 Share Опубліковано: 18 березня 2013 1521 в таблице данные есть, с виду там все корректно, но на сайте кроме этих предупреждений перестали работать практически все модули, пропали картинки, пропал блок категорий, пропал фильтрпро, зато дебаггер показывает реальное уменьшение запросов до 1-2) PS Поставил на 1541, завелось почти сразу, но заметил интересный баг - у меня там чистая сборка, и после добавления изменений из темы, перестали сохранятся настройки, т.е. ВООБЩЕ любые настройки, внесенные в админку, не сохраняются после нажатия кнопки сохранить. Если дропнуть таблицу кеша, то настройки начинают сохранятся. Такие дела :) PPS Еще в админке нужно подключить static.php Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Вот и баги полезли)) Спасибо за помощь! Проблему решаем отключением кэша для админки для этого: - в файл \admin\config.php добавить строчку - define('IS_ADMIN', true); - код формирования кэша обернуть в условие if(!defined('IS_ADMIN')){ ... } файлы на гист обновил Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 18 березня 2013 Share Опубліковано: 18 березня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?) Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Поступили сигналы о несовместимости с некоторыми расширениями, для решения этой проблемы добавлено возможность отключать кэширование определённых моделей. установкой в массиве конфигруции значения expire = false, это еще пригодится и для данных, которые по определению не нужно кэшировать. Для грубой отладки, можно использовать в mysql.php две строчки var_dump($method. ' ('. $caller[2]['line']. ')'); //вывод места откуда вызывается запрос var_dump($sql);//текст запроса Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?) решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Надіслати Поділитися на інших сайтах More sharing options... 2 months later... bdenisska Опубліковано: 22 травня 2013 Share Опубліковано: 22 травня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?)решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Здравствуйте, каким образом настроить кеширование только емких запросов? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Vladzimir Опубліковано: 5 серпня 2013 Share Опубліковано: 5 серпня 2013 Интересует такой вопрос. Почему если отключить method, то кеш все равно пишется в БД? По логике вещей ведь кешировать нужно только то что разрешено. И хотелось бы понять причину по которой данное решение не совместимо с некоторыми дополнениями. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... kikasso Опубліковано: 16 вересня 2013 Автор Share Опубліковано: 16 вересня 2013 к серверной оптимизации так же можно отнести, настройку HTTP заголовков Last-Modified и If-Modified-Since, это позволит снизить нагрузку на сервер и упростит жизнь поисковым ботам (ускорит индексацию). Подробнее что это такое и как готовить, уже обсуждалось на форуме Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 kikasso, большое спасибо! Молодец, на maxystore 1.5.5.1 с товаром +/- 2тыс ускорение в 4 раза точно!!! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 Решение кончено имеет право на жизнь, только в MySQL уже есть кэширование И неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. SQL-кэш к стати куда быстрее файлового работает, так как в нем заключена вся мощь СУБД. Если вы свою теорию проверите на практике, поделитесь успехами - интересно как можно обойти кэширование запросов, например, содержимого корзины...? и ведь если выполнялось пол тысячи запросов к БД при обращении к странице, так пол тысячи выполняться и будет при включено MySQL кэше... да быстрее, но вопрос на сколько? поэтому очень интересна обоснованность фразы "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" Еще я бы фразу Надо лишь настроить сервер - выделил жирным и перекрасил в красный цвет, т.к. для большинства актуально использование виртуального хостинга, что и у меня было в исходных данных к заданию, а это требование отсекает ваш теоретический вариант с MySQL кэшем. За ссылку на информацию по MySQL кэшу спасибо, первый раз слышу, никогда не использовал! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 @toporchillo нашел вашу статью по оптимизации SQL запросов в OpenCart 1.5.5.1, на которую вы ссылаетесь в этом топике. Там хорошее начало про высокие нагрузки, про беду теоретических споров... а вот самого главного, какой профит можно получить от проделанной работы, нет. Не понятно, то ли это экономия на спичках, то ли стоящая затея (и демо сайт чтобы посчупать, к сожалению не работает). Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 А давайте вы произведете замеры. Пожалуй так будет справедливо. Тем более, что у вам прекрасные инструменты. Изменения описанные в статье внесены в актуальную сборку ocStore в оригинальном OpenCart их нет. OpenCart vs OcStore. Самому интересно в конкретных цифрах. произведу, только если вы обоснуете фразу "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее", говоря что с встроенным кэшем в MySQL будет работать быстрее вы со мной делитесь интересующей меня информацией, я вам помогаю с интересующими цифрами по производительности - вот так справедливо:) Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 Также можно загружать данные не в цикле, а одним запросом. Нужно сначала собрать массив найденных product_id, а потом в запросе использовать условие p.product_id IN(...). Оказалось что лучше 20 запросов на каждый товар нежели один. Суммарное время выполнения по очереди 20 getProduct оказалось почти в 5 раз быстрее чем один запрос с p.product_id IN(...). 2 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
RGB Опубліковано: 18 березня 2013 Share Опубліковано: 18 березня 2013 1521 в таблице данные есть, с виду там все корректно, но на сайте кроме этих предупреждений перестали работать практически все модули, пропали картинки, пропал блок категорий, пропал фильтрпро, зато дебаггер показывает реальное уменьшение запросов до 1-2) PS Поставил на 1541, завелось почти сразу, но заметил интересный баг - у меня там чистая сборка, и после добавления изменений из темы, перестали сохранятся настройки, т.е. ВООБЩЕ любые настройки, внесенные в админку, не сохраняются после нажатия кнопки сохранить. Если дропнуть таблицу кеша, то настройки начинают сохранятся. Такие дела :) PPS Еще в админке нужно подключить static.php Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Вот и баги полезли)) Спасибо за помощь! Проблему решаем отключением кэша для админки для этого: - в файл \admin\config.php добавить строчку - define('IS_ADMIN', true); - код формирования кэша обернуть в условие if(!defined('IS_ADMIN')){ ... } файлы на гист обновил Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 18 березня 2013 Share Опубліковано: 18 березня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?) Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Поступили сигналы о несовместимости с некоторыми расширениями, для решения этой проблемы добавлено возможность отключать кэширование определённых моделей. установкой в массиве конфигруции значения expire = false, это еще пригодится и для данных, которые по определению не нужно кэшировать. Для грубой отладки, можно использовать в mysql.php две строчки var_dump($method. ' ('. $caller[2]['line']. ')'); //вывод места откуда вызывается запрос var_dump($sql);//текст запроса Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?) решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Надіслати Поділитися на інших сайтах More sharing options... 2 months later... bdenisska Опубліковано: 22 травня 2013 Share Опубліковано: 22 травня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?)решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Здравствуйте, каким образом настроить кеширование только емких запросов? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Vladzimir Опубліковано: 5 серпня 2013 Share Опубліковано: 5 серпня 2013 Интересует такой вопрос. Почему если отключить method, то кеш все равно пишется в БД? По логике вещей ведь кешировать нужно только то что разрешено. И хотелось бы понять причину по которой данное решение не совместимо с некоторыми дополнениями. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... kikasso Опубліковано: 16 вересня 2013 Автор Share Опубліковано: 16 вересня 2013 к серверной оптимизации так же можно отнести, настройку HTTP заголовков Last-Modified и If-Modified-Since, это позволит снизить нагрузку на сервер и упростит жизнь поисковым ботам (ускорит индексацию). Подробнее что это такое и как готовить, уже обсуждалось на форуме Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 kikasso, большое спасибо! Молодец, на maxystore 1.5.5.1 с товаром +/- 2тыс ускорение в 4 раза точно!!! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 Решение кончено имеет право на жизнь, только в MySQL уже есть кэширование И неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. SQL-кэш к стати куда быстрее файлового работает, так как в нем заключена вся мощь СУБД. Если вы свою теорию проверите на практике, поделитесь успехами - интересно как можно обойти кэширование запросов, например, содержимого корзины...? и ведь если выполнялось пол тысячи запросов к БД при обращении к странице, так пол тысячи выполняться и будет при включено MySQL кэше... да быстрее, но вопрос на сколько? поэтому очень интересна обоснованность фразы "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" Еще я бы фразу Надо лишь настроить сервер - выделил жирным и перекрасил в красный цвет, т.к. для большинства актуально использование виртуального хостинга, что и у меня было в исходных данных к заданию, а это требование отсекает ваш теоретический вариант с MySQL кэшем. За ссылку на информацию по MySQL кэшу спасибо, первый раз слышу, никогда не использовал! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 @toporchillo нашел вашу статью по оптимизации SQL запросов в OpenCart 1.5.5.1, на которую вы ссылаетесь в этом топике. Там хорошее начало про высокие нагрузки, про беду теоретических споров... а вот самого главного, какой профит можно получить от проделанной работы, нет. Не понятно, то ли это экономия на спичках, то ли стоящая затея (и демо сайт чтобы посчупать, к сожалению не работает). Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 А давайте вы произведете замеры. Пожалуй так будет справедливо. Тем более, что у вам прекрасные инструменты. Изменения описанные в статье внесены в актуальную сборку ocStore в оригинальном OpenCart их нет. OpenCart vs OcStore. Самому интересно в конкретных цифрах. произведу, только если вы обоснуете фразу "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее", говоря что с встроенным кэшем в MySQL будет работать быстрее вы со мной делитесь интересующей меня информацией, я вам помогаю с интересующими цифрами по производительности - вот так справедливо:) Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 Также можно загружать данные не в цикле, а одним запросом. Нужно сначала собрать массив найденных product_id, а потом в запросе использовать условие p.product_id IN(...). Оказалось что лучше 20 запросов на каждый товар нежели один. Суммарное время выполнения по очереди 20 getProduct оказалось почти в 5 раз быстрее чем один запрос с p.product_id IN(...). 2 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Вот и баги полезли)) Спасибо за помощь! Проблему решаем отключением кэша для админки для этого: - в файл \admin\config.php добавить строчку - define('IS_ADMIN', true); - код формирования кэша обернуть в условие if(!defined('IS_ADMIN')){ ... } файлы на гист обновил Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 18 березня 2013 Share Опубліковано: 18 березня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?) Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Поступили сигналы о несовместимости с некоторыми расширениями, для решения этой проблемы добавлено возможность отключать кэширование определённых моделей. установкой в массиве конфигруции значения expire = false, это еще пригодится и для данных, которые по определению не нужно кэшировать. Для грубой отладки, можно использовать в mysql.php две строчки var_dump($method. ' ('. $caller[2]['line']. ')'); //вывод места откуда вызывается запрос var_dump($sql);//текст запроса Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?) решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Надіслати Поділитися на інших сайтах More sharing options... 2 months later... bdenisska Опубліковано: 22 травня 2013 Share Опубліковано: 22 травня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?)решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Здравствуйте, каким образом настроить кеширование только емких запросов? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Vladzimir Опубліковано: 5 серпня 2013 Share Опубліковано: 5 серпня 2013 Интересует такой вопрос. Почему если отключить method, то кеш все равно пишется в БД? По логике вещей ведь кешировать нужно только то что разрешено. И хотелось бы понять причину по которой данное решение не совместимо с некоторыми дополнениями. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... kikasso Опубліковано: 16 вересня 2013 Автор Share Опубліковано: 16 вересня 2013 к серверной оптимизации так же можно отнести, настройку HTTP заголовков Last-Modified и If-Modified-Since, это позволит снизить нагрузку на сервер и упростит жизнь поисковым ботам (ускорит индексацию). Подробнее что это такое и как готовить, уже обсуждалось на форуме Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 kikasso, большое спасибо! Молодец, на maxystore 1.5.5.1 с товаром +/- 2тыс ускорение в 4 раза точно!!! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 Решение кончено имеет право на жизнь, только в MySQL уже есть кэширование И неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. SQL-кэш к стати куда быстрее файлового работает, так как в нем заключена вся мощь СУБД. Если вы свою теорию проверите на практике, поделитесь успехами - интересно как можно обойти кэширование запросов, например, содержимого корзины...? и ведь если выполнялось пол тысячи запросов к БД при обращении к странице, так пол тысячи выполняться и будет при включено MySQL кэше... да быстрее, но вопрос на сколько? поэтому очень интересна обоснованность фразы "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" Еще я бы фразу Надо лишь настроить сервер - выделил жирным и перекрасил в красный цвет, т.к. для большинства актуально использование виртуального хостинга, что и у меня было в исходных данных к заданию, а это требование отсекает ваш теоретический вариант с MySQL кэшем. За ссылку на информацию по MySQL кэшу спасибо, первый раз слышу, никогда не использовал! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 @toporchillo нашел вашу статью по оптимизации SQL запросов в OpenCart 1.5.5.1, на которую вы ссылаетесь в этом топике. Там хорошее начало про высокие нагрузки, про беду теоретических споров... а вот самого главного, какой профит можно получить от проделанной работы, нет. Не понятно, то ли это экономия на спичках, то ли стоящая затея (и демо сайт чтобы посчупать, к сожалению не работает). Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 А давайте вы произведете замеры. Пожалуй так будет справедливо. Тем более, что у вам прекрасные инструменты. Изменения описанные в статье внесены в актуальную сборку ocStore в оригинальном OpenCart их нет. OpenCart vs OcStore. Самому интересно в конкретных цифрах. произведу, только если вы обоснуете фразу "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее", говоря что с встроенным кэшем в MySQL будет работать быстрее вы со мной делитесь интересующей меня информацией, я вам помогаю с интересующими цифрами по производительности - вот так справедливо:) Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 Также можно загружать данные не в цикле, а одним запросом. Нужно сначала собрать массив найденных product_id, а потом в запросе использовать условие p.product_id IN(...). Оказалось что лучше 20 запросов на каждый товар нежели один. Суммарное время выполнения по очереди 20 getProduct оказалось почти в 5 раз быстрее чем один запрос с p.product_id IN(...). 2 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
RGB Опубліковано: 18 березня 2013 Share Опубліковано: 18 березня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?) Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Поступили сигналы о несовместимости с некоторыми расширениями, для решения этой проблемы добавлено возможность отключать кэширование определённых моделей. установкой в массиве конфигруции значения expire = false, это еще пригодится и для данных, которые по определению не нужно кэшировать. Для грубой отладки, можно использовать в mysql.php две строчки var_dump($method. ' ('. $caller[2]['line']. ')'); //вывод места откуда вызывается запрос var_dump($sql);//текст запроса Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?) решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Надіслати Поділитися на інших сайтах More sharing options... 2 months later... bdenisska Опубліковано: 22 травня 2013 Share Опубліковано: 22 травня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?)решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Здравствуйте, каким образом настроить кеширование только емких запросов? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Vladzimir Опубліковано: 5 серпня 2013 Share Опубліковано: 5 серпня 2013 Интересует такой вопрос. Почему если отключить method, то кеш все равно пишется в БД? По логике вещей ведь кешировать нужно только то что разрешено. И хотелось бы понять причину по которой данное решение не совместимо с некоторыми дополнениями. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... kikasso Опубліковано: 16 вересня 2013 Автор Share Опубліковано: 16 вересня 2013 к серверной оптимизации так же можно отнести, настройку HTTP заголовков Last-Modified и If-Modified-Since, это позволит снизить нагрузку на сервер и упростит жизнь поисковым ботам (ускорит индексацию). Подробнее что это такое и как готовить, уже обсуждалось на форуме Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 kikasso, большое спасибо! Молодец, на maxystore 1.5.5.1 с товаром +/- 2тыс ускорение в 4 раза точно!!! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 Решение кончено имеет право на жизнь, только в MySQL уже есть кэширование И неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. SQL-кэш к стати куда быстрее файлового работает, так как в нем заключена вся мощь СУБД. Если вы свою теорию проверите на практике, поделитесь успехами - интересно как можно обойти кэширование запросов, например, содержимого корзины...? и ведь если выполнялось пол тысячи запросов к БД при обращении к странице, так пол тысячи выполняться и будет при включено MySQL кэше... да быстрее, но вопрос на сколько? поэтому очень интересна обоснованность фразы "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" Еще я бы фразу Надо лишь настроить сервер - выделил жирным и перекрасил в красный цвет, т.к. для большинства актуально использование виртуального хостинга, что и у меня было в исходных данных к заданию, а это требование отсекает ваш теоретический вариант с MySQL кэшем. За ссылку на информацию по MySQL кэшу спасибо, первый раз слышу, никогда не использовал! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 @toporchillo нашел вашу статью по оптимизации SQL запросов в OpenCart 1.5.5.1, на которую вы ссылаетесь в этом топике. Там хорошее начало про высокие нагрузки, про беду теоретических споров... а вот самого главного, какой профит можно получить от проделанной работы, нет. Не понятно, то ли это экономия на спичках, то ли стоящая затея (и демо сайт чтобы посчупать, к сожалению не работает). Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 А давайте вы произведете замеры. Пожалуй так будет справедливо. Тем более, что у вам прекрасные инструменты. Изменения описанные в статье внесены в актуальную сборку ocStore в оригинальном OpenCart их нет. OpenCart vs OcStore. Самому интересно в конкретных цифрах. произведу, только если вы обоснуете фразу "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее", говоря что с встроенным кэшем в MySQL будет работать быстрее вы со мной делитесь интересующей меня информацией, я вам помогаю с интересующими цифрами по производительности - вот так справедливо:) Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 Также можно загружать данные не в цикле, а одним запросом. Нужно сначала собрать массив найденных product_id, а потом в запросе использовать условие p.product_id IN(...). Оказалось что лучше 20 запросов на каждый товар нежели один. Суммарное время выполнения по очереди 20 getProduct оказалось почти в 5 раз быстрее чем один запрос с p.product_id IN(...). 2 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Поступили сигналы о несовместимости с некоторыми расширениями, для решения этой проблемы добавлено возможность отключать кэширование определённых моделей. установкой в массиве конфигруции значения expire = false, это еще пригодится и для данных, которые по определению не нужно кэшировать. Для грубой отладки, можно использовать в mysql.php две строчки var_dump($method. ' ('. $caller[2]['line']. ')'); //вывод места откуда вызывается запрос var_dump($sql);//текст запроса Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?) решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Надіслати Поділитися на інших сайтах More sharing options... 2 months later... bdenisska Опубліковано: 22 травня 2013 Share Опубліковано: 22 травня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?)решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Здравствуйте, каким образом настроить кеширование только емких запросов? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Vladzimir Опубліковано: 5 серпня 2013 Share Опубліковано: 5 серпня 2013 Интересует такой вопрос. Почему если отключить method, то кеш все равно пишется в БД? По логике вещей ведь кешировать нужно только то что разрешено. И хотелось бы понять причину по которой данное решение не совместимо с некоторыми дополнениями. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... kikasso Опубліковано: 16 вересня 2013 Автор Share Опубліковано: 16 вересня 2013 к серверной оптимизации так же можно отнести, настройку HTTP заголовков Last-Modified и If-Modified-Since, это позволит снизить нагрузку на сервер и упростит жизнь поисковым ботам (ускорит индексацию). Подробнее что это такое и как готовить, уже обсуждалось на форуме Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 kikasso, большое спасибо! Молодец, на maxystore 1.5.5.1 с товаром +/- 2тыс ускорение в 4 раза точно!!! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 Решение кончено имеет право на жизнь, только в MySQL уже есть кэширование И неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. SQL-кэш к стати куда быстрее файлового работает, так как в нем заключена вся мощь СУБД. Если вы свою теорию проверите на практике, поделитесь успехами - интересно как можно обойти кэширование запросов, например, содержимого корзины...? и ведь если выполнялось пол тысячи запросов к БД при обращении к странице, так пол тысячи выполняться и будет при включено MySQL кэше... да быстрее, но вопрос на сколько? поэтому очень интересна обоснованность фразы "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" Еще я бы фразу Надо лишь настроить сервер - выделил жирным и перекрасил в красный цвет, т.к. для большинства актуально использование виртуального хостинга, что и у меня было в исходных данных к заданию, а это требование отсекает ваш теоретический вариант с MySQL кэшем. За ссылку на информацию по MySQL кэшу спасибо, первый раз слышу, никогда не использовал! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 @toporchillo нашел вашу статью по оптимизации SQL запросов в OpenCart 1.5.5.1, на которую вы ссылаетесь в этом топике. Там хорошее начало про высокие нагрузки, про беду теоретических споров... а вот самого главного, какой профит можно получить от проделанной работы, нет. Не понятно, то ли это экономия на спичках, то ли стоящая затея (и демо сайт чтобы посчупать, к сожалению не работает). Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 А давайте вы произведете замеры. Пожалуй так будет справедливо. Тем более, что у вам прекрасные инструменты. Изменения описанные в статье внесены в актуальную сборку ocStore в оригинальном OpenCart их нет. OpenCart vs OcStore. Самому интересно в конкретных цифрах. произведу, только если вы обоснуете фразу "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее", говоря что с встроенным кэшем в MySQL будет работать быстрее вы со мной делитесь интересующей меня информацией, я вам помогаю с интересующими цифрами по производительности - вот так справедливо:) Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 Также можно загружать данные не в цикле, а одним запросом. Нужно сначала собрать массив найденных product_id, а потом в запросе использовать условие p.product_id IN(...). Оказалось что лучше 20 запросов на каждый товар нежели один. Суммарное время выполнения по очереди 20 getProduct оказалось почти в 5 раз быстрее чем один запрос с p.product_id IN(...). 2 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
kikasso Опубліковано: 18 березня 2013 Автор Share Опубліковано: 18 березня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?) решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Надіслати Поділитися на інших сайтах More sharing options... 2 months later... bdenisska Опубліковано: 22 травня 2013 Share Опубліковано: 22 травня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?)решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Здравствуйте, каким образом настроить кеширование только емких запросов? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Vladzimir Опубліковано: 5 серпня 2013 Share Опубліковано: 5 серпня 2013 Интересует такой вопрос. Почему если отключить method, то кеш все равно пишется в БД? По логике вещей ведь кешировать нужно только то что разрешено. И хотелось бы понять причину по которой данное решение не совместимо с некоторыми дополнениями. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... kikasso Опубліковано: 16 вересня 2013 Автор Share Опубліковано: 16 вересня 2013 к серверной оптимизации так же можно отнести, настройку HTTP заголовков Last-Modified и If-Modified-Since, это позволит снизить нагрузку на сервер и упростит жизнь поисковым ботам (ускорит индексацию). Подробнее что это такое и как готовить, уже обсуждалось на форуме Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 kikasso, большое спасибо! Молодец, на maxystore 1.5.5.1 с товаром +/- 2тыс ускорение в 4 раза точно!!! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 Решение кончено имеет право на жизнь, только в MySQL уже есть кэширование И неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. SQL-кэш к стати куда быстрее файлового работает, так как в нем заключена вся мощь СУБД. Если вы свою теорию проверите на практике, поделитесь успехами - интересно как можно обойти кэширование запросов, например, содержимого корзины...? и ведь если выполнялось пол тысячи запросов к БД при обращении к странице, так пол тысячи выполняться и будет при включено MySQL кэше... да быстрее, но вопрос на сколько? поэтому очень интересна обоснованность фразы "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" Еще я бы фразу Надо лишь настроить сервер - выделил жирным и перекрасил в красный цвет, т.к. для большинства актуально использование виртуального хостинга, что и у меня было в исходных данных к заданию, а это требование отсекает ваш теоретический вариант с MySQL кэшем. За ссылку на информацию по MySQL кэшу спасибо, первый раз слышу, никогда не использовал! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 @toporchillo нашел вашу статью по оптимизации SQL запросов в OpenCart 1.5.5.1, на которую вы ссылаетесь в этом топике. Там хорошее начало про высокие нагрузки, про беду теоретических споров... а вот самого главного, какой профит можно получить от проделанной работы, нет. Не понятно, то ли это экономия на спичках, то ли стоящая затея (и демо сайт чтобы посчупать, к сожалению не работает). Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 А давайте вы произведете замеры. Пожалуй так будет справедливо. Тем более, что у вам прекрасные инструменты. Изменения описанные в статье внесены в актуальную сборку ocStore в оригинальном OpenCart их нет. OpenCart vs OcStore. Самому интересно в конкретных цифрах. произведу, только если вы обоснуете фразу "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее", говоря что с встроенным кэшем в MySQL будет работать быстрее вы со мной делитесь интересующей меня информацией, я вам помогаю с интересующими цифрами по производительности - вот так справедливо:) Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 Также можно загружать данные не в цикле, а одним запросом. Нужно сначала собрать массив найденных product_id, а потом в запросе использовать условие p.product_id IN(...). Оказалось что лучше 20 запросов на каждый товар нежели один. Суммарное время выполнения по очереди 20 getProduct оказалось почти в 5 раз быстрее чем один запрос с p.product_id IN(...). 2 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
bdenisska Опубліковано: 22 травня 2013 Share Опубліковано: 22 травня 2013 Посмотрел 4 страницы категории по 15 товаров (всего 60) - размер таблицы кеша увеличился до 316 кб, не сильно ли жирно это? У меня в магазине скоро будет 30К товаров, таблица соответственно перевалит за сотню мб, правильно? БД не упадет с такими размерами таблиц?)решение делалось для сотен товаров, надо тестировать, можно попробовать настроить кэш только на ресурсоемкие запросы... Здравствуйте, каким образом настроить кеширование только емких запросов? Надіслати Поділитися на інших сайтах More sharing options...
Vladzimir Опубліковано: 5 серпня 2013 Share Опубліковано: 5 серпня 2013 Интересует такой вопрос. Почему если отключить method, то кеш все равно пишется в БД? По логике вещей ведь кешировать нужно только то что разрешено. И хотелось бы понять причину по которой данное решение не совместимо с некоторыми дополнениями. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... kikasso Опубліковано: 16 вересня 2013 Автор Share Опубліковано: 16 вересня 2013 к серверной оптимизации так же можно отнести, настройку HTTP заголовков Last-Modified и If-Modified-Since, это позволит снизить нагрузку на сервер и упростит жизнь поисковым ботам (ускорит индексацию). Подробнее что это такое и как готовить, уже обсуждалось на форуме Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 kikasso, большое спасибо! Молодец, на maxystore 1.5.5.1 с товаром +/- 2тыс ускорение в 4 раза точно!!! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 Решение кончено имеет право на жизнь, только в MySQL уже есть кэширование И неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. SQL-кэш к стати куда быстрее файлового работает, так как в нем заключена вся мощь СУБД. Если вы свою теорию проверите на практике, поделитесь успехами - интересно как можно обойти кэширование запросов, например, содержимого корзины...? и ведь если выполнялось пол тысячи запросов к БД при обращении к странице, так пол тысячи выполняться и будет при включено MySQL кэше... да быстрее, но вопрос на сколько? поэтому очень интересна обоснованность фразы "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" Еще я бы фразу Надо лишь настроить сервер - выделил жирным и перекрасил в красный цвет, т.к. для большинства актуально использование виртуального хостинга, что и у меня было в исходных данных к заданию, а это требование отсекает ваш теоретический вариант с MySQL кэшем. За ссылку на информацию по MySQL кэшу спасибо, первый раз слышу, никогда не использовал! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 @toporchillo нашел вашу статью по оптимизации SQL запросов в OpenCart 1.5.5.1, на которую вы ссылаетесь в этом топике. Там хорошее начало про высокие нагрузки, про беду теоретических споров... а вот самого главного, какой профит можно получить от проделанной работы, нет. Не понятно, то ли это экономия на спичках, то ли стоящая затея (и демо сайт чтобы посчупать, к сожалению не работает). Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 А давайте вы произведете замеры. Пожалуй так будет справедливо. Тем более, что у вам прекрасные инструменты. Изменения описанные в статье внесены в актуальную сборку ocStore в оригинальном OpenCart их нет. OpenCart vs OcStore. Самому интересно в конкретных цифрах. произведу, только если вы обоснуете фразу "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее", говоря что с встроенным кэшем в MySQL будет работать быстрее вы со мной делитесь интересующей меня информацией, я вам помогаю с интересующими цифрами по производительности - вот так справедливо:) Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 Также можно загружать данные не в цикле, а одним запросом. Нужно сначала собрать массив найденных product_id, а потом в запросе использовать условие p.product_id IN(...). Оказалось что лучше 20 запросов на каждый товар нежели один. Суммарное время выполнения по очереди 20 getProduct оказалось почти в 5 раз быстрее чем один запрос с p.product_id IN(...). 2 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
kikasso Опубліковано: 16 вересня 2013 Автор Share Опубліковано: 16 вересня 2013 к серверной оптимизации так же можно отнести, настройку HTTP заголовков Last-Modified и If-Modified-Since, это позволит снизить нагрузку на сервер и упростит жизнь поисковым ботам (ускорит индексацию). Подробнее что это такое и как готовить, уже обсуждалось на форуме Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 kikasso, большое спасибо! Молодец, на maxystore 1.5.5.1 с товаром +/- 2тыс ускорение в 4 раза точно!!! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 Решение кончено имеет право на жизнь, только в MySQL уже есть кэширование И неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. SQL-кэш к стати куда быстрее файлового работает, так как в нем заключена вся мощь СУБД. Если вы свою теорию проверите на практике, поделитесь успехами - интересно как можно обойти кэширование запросов, например, содержимого корзины...? и ведь если выполнялось пол тысячи запросов к БД при обращении к странице, так пол тысячи выполняться и будет при включено MySQL кэше... да быстрее, но вопрос на сколько? поэтому очень интересна обоснованность фразы "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" Еще я бы фразу Надо лишь настроить сервер - выделил жирным и перекрасил в красный цвет, т.к. для большинства актуально использование виртуального хостинга, что и у меня было в исходных данных к заданию, а это требование отсекает ваш теоретический вариант с MySQL кэшем. За ссылку на информацию по MySQL кэшу спасибо, первый раз слышу, никогда не использовал! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 @toporchillo нашел вашу статью по оптимизации SQL запросов в OpenCart 1.5.5.1, на которую вы ссылаетесь в этом топике. Там хорошее начало про высокие нагрузки, про беду теоретических споров... а вот самого главного, какой профит можно получить от проделанной работы, нет. Не понятно, то ли это экономия на спичках, то ли стоящая затея (и демо сайт чтобы посчупать, к сожалению не работает). Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 А давайте вы произведете замеры. Пожалуй так будет справедливо. Тем более, что у вам прекрасные инструменты. Изменения описанные в статье внесены в актуальную сборку ocStore в оригинальном OpenCart их нет. OpenCart vs OcStore. Самому интересно в конкретных цифрах. произведу, только если вы обоснуете фразу "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее", говоря что с встроенным кэшем в MySQL будет работать быстрее вы со мной делитесь интересующей меня информацией, я вам помогаю с интересующими цифрами по производительности - вот так справедливо:) Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 Также можно загружать данные не в цикле, а одним запросом. Нужно сначала собрать массив найденных product_id, а потом в запросе использовать условие p.product_id IN(...). Оказалось что лучше 20 запросов на каждый товар нежели один. Суммарное время выполнения по очереди 20 getProduct оказалось почти в 5 раз быстрее чем один запрос с p.product_id IN(...). 2 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
yurets86 Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 kikasso, большое спасибо! Молодец, на maxystore 1.5.5.1 с товаром +/- 2тыс ускорение в 4 раза точно!!! Надіслати Поділитися на інших сайтах More sharing options...
kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 Решение кончено имеет право на жизнь, только в MySQL уже есть кэширование И неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. SQL-кэш к стати куда быстрее файлового работает, так как в нем заключена вся мощь СУБД. Если вы свою теорию проверите на практике, поделитесь успехами - интересно как можно обойти кэширование запросов, например, содержимого корзины...? и ведь если выполнялось пол тысячи запросов к БД при обращении к странице, так пол тысячи выполняться и будет при включено MySQL кэше... да быстрее, но вопрос на сколько? поэтому очень интересна обоснованность фразы "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" Еще я бы фразу Надо лишь настроить сервер - выделил жирным и перекрасил в красный цвет, т.к. для большинства актуально использование виртуального хостинга, что и у меня было в исходных данных к заданию, а это требование отсекает ваш теоретический вариант с MySQL кэшем. За ссылку на информацию по MySQL кэшу спасибо, первый раз слышу, никогда не использовал! Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 @toporchillo нашел вашу статью по оптимизации SQL запросов в OpenCart 1.5.5.1, на которую вы ссылаетесь в этом топике. Там хорошее начало про высокие нагрузки, про беду теоретических споров... а вот самого главного, какой профит можно получить от проделанной работы, нет. Не понятно, то ли это экономия на спичках, то ли стоящая затея (и демо сайт чтобы посчупать, к сожалению не работает). Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 А давайте вы произведете замеры. Пожалуй так будет справедливо. Тем более, что у вам прекрасные инструменты. Изменения описанные в статье внесены в актуальную сборку ocStore в оригинальном OpenCart их нет. OpenCart vs OcStore. Самому интересно в конкретных цифрах. произведу, только если вы обоснуете фразу "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее", говоря что с встроенным кэшем в MySQL будет работать быстрее вы со мной делитесь интересующей меня информацией, я вам помогаю с интересующими цифрами по производительности - вот так справедливо:) Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 Также можно загружать данные не в цикле, а одним запросом. Нужно сначала собрать массив найденных product_id, а потом в запросе использовать условие p.product_id IN(...). Оказалось что лучше 20 запросов на каждый товар нежели один. Суммарное время выполнения по очереди 20 getProduct оказалось почти в 5 раз быстрее чем один запрос с p.product_id IN(...). 2 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 @toporchillo нашел вашу статью по оптимизации SQL запросов в OpenCart 1.5.5.1, на которую вы ссылаетесь в этом топике. Там хорошее начало про высокие нагрузки, про беду теоретических споров... а вот самого главного, какой профит можно получить от проделанной работы, нет. Не понятно, то ли это экономия на спичках, то ли стоящая затея (и демо сайт чтобы посчупать, к сожалению не работает). Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 А давайте вы произведете замеры. Пожалуй так будет справедливо. Тем более, что у вам прекрасные инструменты. Изменения описанные в статье внесены в актуальную сборку ocStore в оригинальном OpenCart их нет. OpenCart vs OcStore. Самому интересно в конкретных цифрах. произведу, только если вы обоснуете фразу "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее", говоря что с встроенным кэшем в MySQL будет работать быстрее вы со мной делитесь интересующей меня информацией, я вам помогаю с интересующими цифрами по производительности - вот так справедливо:) Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 Также можно загружать данные не в цикле, а одним запросом. Нужно сначала собрать массив найденных product_id, а потом в запросе использовать условие p.product_id IN(...). Оказалось что лучше 20 запросов на каждый товар нежели один. Суммарное время выполнения по очереди 20 getProduct оказалось почти в 5 раз быстрее чем один запрос с p.product_id IN(...). 2 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
kikasso Опубліковано: 17 вересня 2013 Автор Share Опубліковано: 17 вересня 2013 А давайте вы произведете замеры. Пожалуй так будет справедливо. Тем более, что у вам прекрасные инструменты. Изменения описанные в статье внесены в актуальную сборку ocStore в оригинальном OpenCart их нет. OpenCart vs OcStore. Самому интересно в конкретных цифрах. произведу, только если вы обоснуете фразу "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее", говоря что с встроенным кэшем в MySQL будет работать быстрее вы со мной делитесь интересующей меня информацией, я вам помогаю с интересующими цифрами по производительности - вот так справедливо:) Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 Также можно загружать данные не в цикле, а одним запросом. Нужно сначала собрать массив найденных product_id, а потом в запросе использовать условие p.product_id IN(...). Оказалось что лучше 20 запросов на каждый товар нежели один. Суммарное время выполнения по очереди 20 getProduct оказалось почти в 5 раз быстрее чем один запрос с p.product_id IN(...). 2 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Vladzimir Опубліковано: 17 вересня 2013 Share Опубліковано: 17 вересня 2013 Также можно загружать данные не в цикле, а одним запросом. Нужно сначала собрать массив найденных product_id, а потом в запросе использовать условие p.product_id IN(...). Оказалось что лучше 20 запросов на каждый товар нежели один. Суммарное время выполнения по очереди 20 getProduct оказалось почти в 5 раз быстрее чем один запрос с p.product_id IN(...). 2 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 ну что значит оказалось? оказалось на вашей базе и вашей конфигурации. только и всего Надіслати Поділитися на інших сайтах More sharing options... yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
yurets86 Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 вылез баг с описанием, нету описания для товара по всему сайту Надіслати Поділитися на інших сайтах More sharing options...
kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Одна из причин в том, что кэш MySQL располагается преимущественно в памяти, а не в файлах, таблицах и т.п. Использование Memcached будет не хуже, но сам Memcached занимает место в памяти, да и для общения с ним нужно выполнять дополнительные вычисления/преобразования данных. Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Таким образом MySQL хранит в кэше то, что оптимально там хранить, а не самое свежее. Минус SQL-кэша в том, что запросы с NOW(), CURRENT_TIMESTAMP() и т.д. не кэшируются, UPDATE INSERT таблицы стирает связанный с таблицей кэш. Также ключ кэша формируются на основании всего запроса. И два запроса, отличающиеся на пробел MySQL посчитает разными и результаты второго из кэша не возьмет. При помощи PHP можно обогнать MySQL-кэш, но для этого надо ключ делать не просто md5($sql), а что-то похитрее. Ну и кэшировать самые тяжелые и частые запросы. Из этих рассуждений вы строите свои доводы? Не убедительно! Как можно говорить об эффективности оптимизации не делая замеры? Я хочу знать на сколько эффективнее вариант с MySQL кэшем, предложенный вами, моего костыля? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? Вопрос остался открыт. 1 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
freelancer Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 Из этих рассуждений вы строите свои доводы? Не убедительно! более того, помимо замеров должны нужно предоставить сами данные что бы у каждого была возможность проверить на своей конфигурации 2 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме.Конкретные базы серверы и т.д. оказываются тоже оторванными от реальности. Что касается предоставить данные, так я вам верю, чего вас проверять? Конечно всегда много если: нельзя под себя настраивать MySQL, нельзя установить Memcache или Sphinx, объем памяти, диска. Любое решение может подходить или не подходить. Я просто против велосипедов, которые вводят в заблуждение. Вот это например что за решение? https://github.com/shaman/opencart-mysql-cache kikasso, я писал: Что хранить в кэше, а что нет, MySQL определяет не только по времени устаревания кэша. Там учитывается и частота запросов, и трудоемкость. Ваше решение прекрасно, великолепно, грандиозно, оно работает лучше всех, проверено на практике. Давайте остановимся на этом. У меня нет охоты спорить чье кунг-фу лучше. Я верю, что в комманде MySQL тоже не дураки. я не претендую на универсальность своего решения, костыль не потому что я не знаю кошерные методики работы с кэшем, а исходя из исходных данных и задачи. И буду искренне рад если найдется лучшее решение. Я не спорю, а пытаюсь в более конструктивное русло перевести разговор. Считаю что если человек говорит "неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее" в топике с конкретной практикой по оптимизации OpenCart, то он должен уметь привести аргументы в пользу эффективности этого решения для данной задачи! А вы мои вопросы касающиеся эффективности OpеnCart и MySQL кэша упорно игнорируете. Если не уверены, так и пишите что у вас есть предположение..., а не утверждая! Или вы сюда зашли чтобы свои услуги прорекламировать? 3 Надіслати Поділитися на інших сайтах More sharing options... kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
kikasso Опубліковано: 18 вересня 2013 Автор Share Опубліковано: 18 вересня 2013 1. Обратите внимание, что вы сами в этой теме сослались на тему с моими изысканиями. Так что пассаж о саморекламе оставьте при себе. 2. Я тоже писал, что любое решение неуниверсально - см. выше. В решении любой задачи есть хорошая практика и не очень. Не сочтите за намёк. 3. Давайте не будем писать про альтернативные варианты вообще, они же, о ужас, могут быть не верны. Что вы хотите от меня услышать, чтобы русло было конструктивным? 4. Вы будете сравнивать OpenCart и ocStore, или доводы в защиту MySQL Cache для вас опять неубедительны? 1. Теме уже пол года, а вы решили порассуждать о неразумности писать костыли и мощи СУБД, навеял на мысль про рекламу ваш комент выше... Мы пишем модули, пытаемся писать их оптимально, ориентируясь на некий сферический магазин в вакууме... 2. У нас конкретная задача в топике для OpenCart я вам это и пытаюсь донести... 3. Скепсис не уместен, просто хочется знать верна ли ваша мысль в контексте данной темы: ...неразумно писать PHP-костыли, когда есть нативные вещи, которые работают эффективнее. И скорее всего уже защищено от тормозов при устаревании кэша. Надо лишь настроить сервер. 4. Не убедительны! Хочется узнать на сколько эффективнее вариант с MySQL кэшем для данной задачи, без вакуума? Вы сами пробовали использовать MySQL кэш для OpneCart? Вам не кажется что узким местом является количество запросов, а не их тяжесть? 1 Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
Vladzimir Опубліковано: 18 вересня 2013 Share Опубліковано: 18 вересня 2013 А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. Вот кстати и частичное решение https://github.com/DjinnS/opencart-Memcache-backend Почему частичное? Да потому что, кто будет кешировать результат разбора данных, если все равно идет их сбор не зависимо от того есть ли кеш или нет. Надіслати Поділитися на інших сайтах More sharing options... Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Серверная оптимизация OpenCart
Vladzimir Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 Решение кеширования отдельного модуля на уровне сгенерированного HTML. В контроллере модуля. Сразу же после protected function index() { Вставляем $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуля $render_data = $this->cache->get( $key ); if ( !$render_data ) { и в самом конце вызова функции заменяем $this->render() на $this->cache->set( $key, $this->render() ); } else { $this->output = $render_data; } Все. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] 1 2 Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 44 відповіді 5 126 переглядів Seriusis 25 липня YouTube lazy load & popup - вставка відео з youtube, vimeo, галерея відео, оптимізація page speed сторінок з відео Автор: Seriusis, 12 листопада 2020 youtube lazy load (і ще %d) Теги: youtube lazy load iframe video видео на странице оптимизация pagespeed page speed галерея видео vimeo видео в карточке 0 коментарів 10 478 переглядів Seriusis 12 листопада 2020 Модуль OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed [Поддержка] 1 2 3 4 60 Автор: MaxD, 15 грудня 2014 оптимизация скорость (і ще %d) Теги: оптимизация скорость ускорить тормоза кеширование много оптимизировать 1 476 відповідей 204 404 перегляди MaxD 7 листопада Модуль [Поддержка] 1 2 3 4 75 Автор: markimax, 15 березня 2017 cache seo cms (і ще %d) Теги: cache seo cms кеширование кеш страниц кеш контроллеров кеш моделей скорость jet cache оптимизация запросы тормозит pagespeed 1 852 відповіді 239 868 переглядів markimax 13 жовтня seo Route board - Профілювання, помічник в оптимізації сайту! Автор: Sha, 24 квітня 2020 free profiler (і ще %d) Теги: free profiler без гмо debug board route system audit helper help time оптимизация попугаи скорость ускоритель модуль список timeline debuger прочее module график charts page google speed speeder дополнения модули расширения аудит техническая проверка сайта быстрый opencart быстрый 100% debugger профілювання профиль профилирование 0 коментарів 6 743 перегляди Sha 25 квітня 2020 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
freelancer Опубліковано: 19 вересня 2013 Share Опубліковано: 19 вересня 2013 $key = "ЗДЕСЬ_ДОЛЖЕН_БЫТЬ_УНИКАЛЬНЫЙ_КЛЮЧ";// Ключ зависит от модуляда не только от модуля.. вот например модуль вывода категорий использует параметр path для рендеринга. т.е. нужен метод в каждом модуле который будет возвращать этот ключ исходя из состояния. А почему до сих пор не реализовано в опенкарте кеширование модуля, на уровне сгенерированного HTML? У меня на одном боевом сайте после кеширования и оптимизации запросов узким местом стал именно рендинг модуля категорий. а вот это простите полный бред, сам рендеринг занимает сотые или даже тысячные секунды. все тормоза в базе Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 Вперед Сторінка 1 з 3 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Recommended Posts