sharman35 Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Приветствую единомышленников по opencart!Столкнулся с проблемой долгой загрузки магазина, неделю рыскаю по интернету в поисках хоть какой то информации об этом. Под спойлером. Помогите пожалуйста с этим разобраться!При много благодарен! 133 Query SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '503' AND cd.language_id = '1' AND c2s.store_id = '0' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)133 Query SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '199' AND cd.language_id = '1' AND c2s.store_id = '0' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)133 Query SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '405' AND cd.language_id = '1' AND c2s.store_id = '0' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)133 Query SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '763' AND cd.language_id = '1' AND c2s.store_id = '0' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)133 Query SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '511' AND cd.language_id = '1' AND c2s.store_id = '0' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)133 Query SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '515' AND cd.language_id = '1' AND c2s.store_id = '0' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)133 Query SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '407' AND cd.language_id = '1' AND c2s.store_id = '0' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)133 Query SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '408' AND cd.language_id = '1' AND c2s.store_id = '0' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)133 Query SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '376' AND cd.language_id = '1' AND c2s.store_id = '0' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)133 Query SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '409' AND cd.language_id = '1' AND c2s.store_id = '0' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)133 Query SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '163' AND cd.language_id = '1' AND c2s.store_id = '0' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Дерево категорий формируется Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Столкнулся с проблемой долгой загрузки магазина, неделю рыскаю по интернету в поисках хоть какой то информации об этом. Под спойлером. Помогите пожалуйста с этим разобраться! Уточните, пожалуйста, версию движка (1.5 или 2.0). Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 (1.5 или 2.0).зачем? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 зачем? Проблема наверняка не только в этих запросах, так что, наверное, надо будет дать человеку дополнительную информацию по теме. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Что конкретно Вы хотите услышать по этих запросах ? Для начала отключите подсчет количества категорий Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... sharman35 Опубликовано: 30 ноября 2016 Автор Поделиться Опубликовано: 30 ноября 2016 Уточните, пожалуйста, версию движка (1.5 или 2.0). ocStore © Версия 1.5.5.1.2 Чистый, без всяких сборок, натянут не стандартный шаблон. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... sharman35 Опубликовано: 30 ноября 2016 Автор Поделиться Опубликовано: 30 ноября 2016 Что конкретно Вы хотите услышать по этих запросах ? Для начала отключите подсчет количества категорий Артем подскажите пожалуйста как это можно сделать. Количество товара отключено, а вот с категориями не могу разобраться. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Артем подскажите пожалуйста как это можно сделать. Количество товара отключено, а вот с категориями не могу разобраться. Полагаю, вам нужен код получения категорий с включенным кешированием. Вот он: public function getCategory($category_id) { $category_info = $this->cache->get((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$category_id); if (FALSE === $category_info) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'"); $category_info = $query->row; $this->cache->set((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$category_id, $category_info); } return $category_info; } public function getCategories($parent_id = 0) { $categories = $this->cache->get((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$parent_id); if (FALSE === $categories) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)"); $categories = $query->rows; $this->cache->set((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$parent_id, $categories); } return $categories; } Внимательно только проверяйте, т.к. я скопировал его из своего проекта. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ни хрена не знаю SQL Но поясните мне $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'"); К учебника обращаться никого не заставляю Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 я немного поправлю DISTINCT * Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Это что-то меняет? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Приведите реальные данные, когда этот запрос может вернуть больше одной строки. category_id - автоинкремент, уникальный (primary) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не Вам, не хорошо все запросы пулять через звездочку Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ну, тут как бы нужно, раграничить метод выборки, модель Реально здесь нужно 3-4 поля А где-то все.. И????? Писать light метод? Мы не ищем легких путей. зы.. Поговорим о конструкторе запросов? :) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не, конструктор запросов это тема для холивара :-) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Столкнулся с проблемой долгой загрузки магазина, неделю рыскаю по интернету в поисках хоть какой то информации об этом. Под спойлером. Помогите пожалуйста с этим разобраться! Уточните, пожалуйста, версию движка (1.5 или 2.0). Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 (1.5 или 2.0).зачем? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 зачем? Проблема наверняка не только в этих запросах, так что, наверное, надо будет дать человеку дополнительную информацию по теме. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Что конкретно Вы хотите услышать по этих запросах ? Для начала отключите подсчет количества категорий Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... sharman35 Опубликовано: 30 ноября 2016 Автор Поделиться Опубликовано: 30 ноября 2016 Уточните, пожалуйста, версию движка (1.5 или 2.0). ocStore © Версия 1.5.5.1.2 Чистый, без всяких сборок, натянут не стандартный шаблон. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... sharman35 Опубликовано: 30 ноября 2016 Автор Поделиться Опубликовано: 30 ноября 2016 Что конкретно Вы хотите услышать по этих запросах ? Для начала отключите подсчет количества категорий Артем подскажите пожалуйста как это можно сделать. Количество товара отключено, а вот с категориями не могу разобраться. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Артем подскажите пожалуйста как это можно сделать. Количество товара отключено, а вот с категориями не могу разобраться. Полагаю, вам нужен код получения категорий с включенным кешированием. Вот он: public function getCategory($category_id) { $category_info = $this->cache->get((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$category_id); if (FALSE === $category_info) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'"); $category_info = $query->row; $this->cache->set((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$category_id, $category_info); } return $category_info; } public function getCategories($parent_id = 0) { $categories = $this->cache->get((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$parent_id); if (FALSE === $categories) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)"); $categories = $query->rows; $this->cache->set((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$parent_id, $categories); } return $categories; } Внимательно только проверяйте, т.к. я скопировал его из своего проекта. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ни хрена не знаю SQL Но поясните мне $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'"); К учебника обращаться никого не заставляю Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 я немного поправлю DISTINCT * Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Это что-то меняет? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Приведите реальные данные, когда этот запрос может вернуть больше одной строки. category_id - автоинкремент, уникальный (primary) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не Вам, не хорошо все запросы пулять через звездочку Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ну, тут как бы нужно, раграничить метод выборки, модель Реально здесь нужно 3-4 поля А где-то все.. И????? Писать light метод? Мы не ищем легких путей. зы.. Поговорим о конструкторе запросов? :) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не, конструктор запросов это тема для холивара :-) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 (1.5 или 2.0).зачем? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 зачем? Проблема наверняка не только в этих запросах, так что, наверное, надо будет дать человеку дополнительную информацию по теме. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Что конкретно Вы хотите услышать по этих запросах ? Для начала отключите подсчет количества категорий Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... sharman35 Опубликовано: 30 ноября 2016 Автор Поделиться Опубликовано: 30 ноября 2016 Уточните, пожалуйста, версию движка (1.5 или 2.0). ocStore © Версия 1.5.5.1.2 Чистый, без всяких сборок, натянут не стандартный шаблон. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... sharman35 Опубликовано: 30 ноября 2016 Автор Поделиться Опубликовано: 30 ноября 2016 Что конкретно Вы хотите услышать по этих запросах ? Для начала отключите подсчет количества категорий Артем подскажите пожалуйста как это можно сделать. Количество товара отключено, а вот с категориями не могу разобраться. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Артем подскажите пожалуйста как это можно сделать. Количество товара отключено, а вот с категориями не могу разобраться. Полагаю, вам нужен код получения категорий с включенным кешированием. Вот он: public function getCategory($category_id) { $category_info = $this->cache->get((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$category_id); if (FALSE === $category_info) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'"); $category_info = $query->row; $this->cache->set((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$category_id, $category_info); } return $category_info; } public function getCategories($parent_id = 0) { $categories = $this->cache->get((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$parent_id); if (FALSE === $categories) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)"); $categories = $query->rows; $this->cache->set((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$parent_id, $categories); } return $categories; } Внимательно только проверяйте, т.к. я скопировал его из своего проекта. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ни хрена не знаю SQL Но поясните мне $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'"); К учебника обращаться никого не заставляю Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 я немного поправлю DISTINCT * Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Это что-то меняет? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Приведите реальные данные, когда этот запрос может вернуть больше одной строки. category_id - автоинкремент, уникальный (primary) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не Вам, не хорошо все запросы пулять через звездочку Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ну, тут как бы нужно, раграничить метод выборки, модель Реально здесь нужно 3-4 поля А где-то все.. И????? Писать light метод? Мы не ищем легких путей. зы.. Поговорим о конструкторе запросов? :) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не, конструктор запросов это тема для холивара :-) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 зачем? Проблема наверняка не только в этих запросах, так что, наверное, надо будет дать человеку дополнительную информацию по теме. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Что конкретно Вы хотите услышать по этих запросах ? Для начала отключите подсчет количества категорий Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... sharman35 Опубликовано: 30 ноября 2016 Автор Поделиться Опубликовано: 30 ноября 2016 Уточните, пожалуйста, версию движка (1.5 или 2.0). ocStore © Версия 1.5.5.1.2 Чистый, без всяких сборок, натянут не стандартный шаблон. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... sharman35 Опубликовано: 30 ноября 2016 Автор Поделиться Опубликовано: 30 ноября 2016 Что конкретно Вы хотите услышать по этих запросах ? Для начала отключите подсчет количества категорий Артем подскажите пожалуйста как это можно сделать. Количество товара отключено, а вот с категориями не могу разобраться. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Артем подскажите пожалуйста как это можно сделать. Количество товара отключено, а вот с категориями не могу разобраться. Полагаю, вам нужен код получения категорий с включенным кешированием. Вот он: public function getCategory($category_id) { $category_info = $this->cache->get((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$category_id); if (FALSE === $category_info) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'"); $category_info = $query->row; $this->cache->set((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$category_id, $category_info); } return $category_info; } public function getCategories($parent_id = 0) { $categories = $this->cache->get((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$parent_id); if (FALSE === $categories) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)"); $categories = $query->rows; $this->cache->set((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$parent_id, $categories); } return $categories; } Внимательно только проверяйте, т.к. я скопировал его из своего проекта. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ни хрена не знаю SQL Но поясните мне $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'"); К учебника обращаться никого не заставляю Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 я немного поправлю DISTINCT * Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Это что-то меняет? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Приведите реальные данные, когда этот запрос может вернуть больше одной строки. category_id - автоинкремент, уникальный (primary) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не Вам, не хорошо все запросы пулять через звездочку Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ну, тут как бы нужно, раграничить метод выборки, модель Реально здесь нужно 3-4 поля А где-то все.. И????? Писать light метод? Мы не ищем легких путей. зы.. Поговорим о конструкторе запросов? :) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не, конструктор запросов это тема для холивара :-) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Что конкретно Вы хотите услышать по этих запросах ? Для начала отключите подсчет количества категорий Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... sharman35 Опубликовано: 30 ноября 2016 Автор Поделиться Опубликовано: 30 ноября 2016 Уточните, пожалуйста, версию движка (1.5 или 2.0). ocStore © Версия 1.5.5.1.2 Чистый, без всяких сборок, натянут не стандартный шаблон. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... sharman35 Опубликовано: 30 ноября 2016 Автор Поделиться Опубликовано: 30 ноября 2016 Что конкретно Вы хотите услышать по этих запросах ? Для начала отключите подсчет количества категорий Артем подскажите пожалуйста как это можно сделать. Количество товара отключено, а вот с категориями не могу разобраться. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Артем подскажите пожалуйста как это можно сделать. Количество товара отключено, а вот с категориями не могу разобраться. Полагаю, вам нужен код получения категорий с включенным кешированием. Вот он: public function getCategory($category_id) { $category_info = $this->cache->get((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$category_id); if (FALSE === $category_info) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'"); $category_info = $query->row; $this->cache->set((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$category_id, $category_info); } return $category_info; } public function getCategories($parent_id = 0) { $categories = $this->cache->get((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$parent_id); if (FALSE === $categories) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)"); $categories = $query->rows; $this->cache->set((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$parent_id, $categories); } return $categories; } Внимательно только проверяйте, т.к. я скопировал его из своего проекта. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ни хрена не знаю SQL Но поясните мне $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'"); К учебника обращаться никого не заставляю Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 я немного поправлю DISTINCT * Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Это что-то меняет? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Приведите реальные данные, когда этот запрос может вернуть больше одной строки. category_id - автоинкремент, уникальный (primary) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не Вам, не хорошо все запросы пулять через звездочку Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ну, тут как бы нужно, раграничить метод выборки, модель Реально здесь нужно 3-4 поля А где-то все.. И????? Писать light метод? Мы не ищем легких путей. зы.. Поговорим о конструкторе запросов? :) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не, конструктор запросов это тема для холивара :-) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
sharman35 Опубликовано: 30 ноября 2016 Автор Поделиться Опубликовано: 30 ноября 2016 Уточните, пожалуйста, версию движка (1.5 или 2.0). ocStore © Версия 1.5.5.1.2 Чистый, без всяких сборок, натянут не стандартный шаблон. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
sharman35 Опубликовано: 30 ноября 2016 Автор Поделиться Опубликовано: 30 ноября 2016 Что конкретно Вы хотите услышать по этих запросах ? Для начала отключите подсчет количества категорий Артем подскажите пожалуйста как это можно сделать. Количество товара отключено, а вот с категориями не могу разобраться. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Артем подскажите пожалуйста как это можно сделать. Количество товара отключено, а вот с категориями не могу разобраться. Полагаю, вам нужен код получения категорий с включенным кешированием. Вот он: public function getCategory($category_id) { $category_info = $this->cache->get((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$category_id); if (FALSE === $category_info) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'"); $category_info = $query->row; $this->cache->set((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$category_id, $category_info); } return $category_info; } public function getCategories($parent_id = 0) { $categories = $this->cache->get((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$parent_id); if (FALSE === $categories) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)"); $categories = $query->rows; $this->cache->set((int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$parent_id, $categories); } return $categories; } Внимательно только проверяйте, т.к. я скопировал его из своего проекта. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ни хрена не знаю SQL Но поясните мне $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'"); К учебника обращаться никого не заставляю Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 я немного поправлю DISTINCT * Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Это что-то меняет? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Приведите реальные данные, когда этот запрос может вернуть больше одной строки. category_id - автоинкремент, уникальный (primary) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не Вам, не хорошо все запросы пулять через звездочку Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ну, тут как бы нужно, раграничить метод выборки, модель Реально здесь нужно 3-4 поля А где-то все.. И????? Писать light метод? Мы не ищем легких путей. зы.. Поговорим о конструкторе запросов? :) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не, конструктор запросов это тема для холивара :-) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ни хрена не знаю SQL Но поясните мне $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'"); К учебника обращаться никого не заставляю Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 я немного поправлю DISTINCT * Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Это что-то меняет? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Приведите реальные данные, когда этот запрос может вернуть больше одной строки. category_id - автоинкремент, уникальный (primary) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не Вам, не хорошо все запросы пулять через звездочку Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ну, тут как бы нужно, раграничить метод выборки, модель Реально здесь нужно 3-4 поля А где-то все.. И????? Писать light метод? Мы не ищем легких путей. зы.. Поговорим о конструкторе запросов? :) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не, конструктор запросов это тема для холивара :-) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 я немного поправлю DISTINCT * Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Это что-то меняет? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Приведите реальные данные, когда этот запрос может вернуть больше одной строки. category_id - автоинкремент, уникальный (primary) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не Вам, не хорошо все запросы пулять через звездочку Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ну, тут как бы нужно, раграничить метод выборки, модель Реально здесь нужно 3-4 поля А где-то все.. И????? Писать light метод? Мы не ищем легких путей. зы.. Поговорим о конструкторе запросов? :) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не, конструктор запросов это тема для холивара :-) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Это что-то меняет? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Приведите реальные данные, когда этот запрос может вернуть больше одной строки. category_id - автоинкремент, уникальный (primary) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не Вам, не хорошо все запросы пулять через звездочку Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ну, тут как бы нужно, раграничить метод выборки, модель Реально здесь нужно 3-4 поля А где-то все.. И????? Писать light метод? Мы не ищем легких путей. зы.. Поговорим о конструкторе запросов? :) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не, конструктор запросов это тема для холивара :-) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Приведите реальные данные, когда этот запрос может вернуть больше одной строки. category_id - автоинкремент, уникальный (primary) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не Вам, не хорошо все запросы пулять через звездочку Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ну, тут как бы нужно, раграничить метод выборки, модель Реально здесь нужно 3-4 поля А где-то все.. И????? Писать light метод? Мы не ищем легких путей. зы.. Поговорим о конструкторе запросов? :) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не, конструктор запросов это тема для холивара :-) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не Вам, не хорошо все запросы пулять через звездочку Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ну, тут как бы нужно, раграничить метод выборки, модель Реально здесь нужно 3-4 поля А где-то все.. И????? Писать light метод? Мы не ищем легких путей. зы.. Поговорим о конструкторе запросов? :) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не, конструктор запросов это тема для холивара :-) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 Ну, тут как бы нужно, раграничить метод выборки, модель Реально здесь нужно 3-4 поля А где-то все.. И????? Писать light метод? Мы не ищем легких путей. зы.. Поговорим о конструкторе запросов? :) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не, конструктор запросов это тема для холивара :-) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 не, конструктор запросов это тема для холивара :-) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Otvet Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.00009550 [Query] => SELECT DISTINCT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id [Query_ID] => 1 [Duration] => 0.00009375 [Query] => SELECT * FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) LEFT JOIN oc_category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id Я в курсе, что то тысячные... НО!!! Для таких тестов используйте select SQL_NO_CACHE Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Query_ID] => 1 [Duration] => 0.02308625 [Query] => SELECT SQL_NO_CACHE * FROM [Query_ID] => 1 [Duration] => 0.04949400 [Query] => SELECT SQL_NO_CACHE DISTINCT * DISTINCT не панацея Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
chukcha Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 getCategory [Duration] => max 0.00043825 - min 0.00036575 [Query] => SELECT SQL_NO_CACHE DISTINCT * FROM oc_category c [Duration] => max 0.00040175 - min 0.00039575 [Query] => SELECT SQL_NO_CACHE * FROM oc_category c Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha
ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.00031925 [Query] => SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, ... сам запрос SELECT SQL_NO_CACHE c.category_id, c.image, c.parent_id, c.top, c.column, cd.name, cd.meta_title, cd.meta_h1, cd.meta_description, cd.meta_keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' LIMIT 1 UPD а с кешом SQL так вовсе 0.00007700 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Отчёты об ошибках Помогите разобраться с логом Mysql
ArtemPitov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 [Duration] => 0.02308625 [Duration] => 0.04949400 Но тут разница в 2!!!! раза. в данном запросе DISTINCT - зло! DISTINCT преобразовывается к GROUP BY для всех столбцов, для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу.
druzhkov Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @druzhkov, на хрена кешировать getCategory? чтоб засорить сотней файлов папку кеша? и вообще кешировать нужно готовое дерево в контроллере Да чего мелочиться - давайте кешировать готовые страницы. :-) Это кусок из модифицированного мной кеша, там все раскладывается по папочкам, и совершенно не напрягает. К тому же все единообразно: на входе метода модели проверили кеш, далее запросили, на выходе сохранили. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 Вперёд Страница 1 из 3 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0
Рекомендованные сообщения