freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 'active' => in_array($category['category_id'], $parts) тем самым закешировав активный пункт меню. я бы руководствовался этим https://opencartforum.com/topic/3355-%D0%B5%D1%81%D1%82%D1%8C-%D0%BB%D0%B8-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0-%D0%BB%D0%BE%D0%B3-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2/page__p__22909#entry22909 Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 тем самым закешировав активный пункт меню Из двух зол. как говорится раз. А два, никто не мешает сделать кеш под все категории верхнего уровня! Либо же вывести активную категорию в тплку, и одной строкойскрипта на Jquery применить стиль! Или перешерстить массив из кеша и всунуть ему актив в контроллере.. Вобщем, мальчик, включи фантазию и действуй, если надо! Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 либо же добавить в кеш массив категорий. база узкое место. 1 Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 Где то так, опять же если на скорую руку! $data=array('menu'); $menu = $this->cache->get('menu.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id')); $this->data['categories']= $menu; if (!$menu) { $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { if ($category['top']) { $children_data = array(); $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); if ($this->config->get('config_product_count')) { //$product_total = $this->model_catalog_product->getTotalProducts($data); $product_total=''; $child['name'] .= ' (' . $product_total . ')'; } $children_data[] = array( 'name' => $child['name'], 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } // Level 1 $this->data['categories'][] = array( 'name' => $category['name'], 'children' => $children_data, 'column' => $category['column'] ? $category['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']), // 'active' => in_array($category['category_id'], $parts) ); } } $menu = $this->data['categories']; $this->cache->set('menu.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') , $menu); } if (isset($parts)) { $this->data['categories']= array(); foreach ($menu as $category) { $this->data['categories'][] = array( 'name' => $category['name'], 'children' => $category['children'], 'column' => $category['column'] , 'href' => $category['href'] , 'active' => in_array($category['category_id'], $parts) ); } } UPD Благодаря тошноте некоторых, получается как то так! Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 эх, молоточек, не доучился ты на программиста, а советовать так и прёт ))) в решении Yesvik'а 1 запрос к базе. у тебя же по запросу на каждую главную категорию. да и не понятно к чему } elseif (isset($parts)) { выходит кеш будет работать только на страницах отличных от категорий. 1 Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 Тихо промолчу... А то кисо обидетсо! Слава богу на форуме не всем моск пхп заменило! Тебя уже раз предупреждали, за твое поведение по моему? Да и людей я не швыряю в отличии от некоторых ? А потом с боями бабло не возвращаю! Прекрати малышь, хамить! эх, молоточек, не доучился ты на программиста, а советовать так и прёт ))) Зато у меня магазины свои работают и я могу здесь тусить фо фан... И не бегать по личкам с предложениями по 500 рублей. А также не слушать отзывы "благодарных покупателей" недофильтра. И где это ты вдруг взял что я собирался учится на программиста, превращаться в тебеподобного зануду, нет никакого желания! И вместо своих чудовысеров. я тебе уже писал миллион раз! пиши альтернативу и правки!!!! А то пользы от этих вау фау, столько же, сколько от брызг от кучи... сам знаешь чего! UPD вспомнилась кстати история, меня б тут не было ваще, если бы чудо фрилансер сдал вовремя свои поделки года полтора назад моему товарищу, и не пришлось вместо него копать все самому. 5 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 да всё норм, успокойся, пиши свой чудо код, я в школе детям показывать буду как не надо делать. на досуге открой раздел дополнения и посчитай сколько раз мой ник там повторяется. в сообществе open sourse есть очень хорошее правило ИМХО. право голоса имеет лишь тот, кто сам чего-то достиг. иначе от недоучек не отобьешься ))) а по теме дайте знать когда придумаете что-то быстрее алгоритма Yesvik'а 2 Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 UPD... КАК ХОРОШО ЧТО ЕСТЬ ИГНОР!!! Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 в тему https://opencartforum.com/topic/10667-%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2-%D0%BD%D0%B0-%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9/ Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 20 лютого 2013 Share Опубліковано: 20 лютого 2013 Я статейку напишу более обстоятельную. А то так много полезной инфы уходит в никуда. Как продвигается? Куда смотреть, чтобы не упустить ее из виду? :-) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... avtozakup Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Фрилансер я хоть и новичек на форуме, но вот что заметил, нафиг ты троллишь? Люди пытаются пользу обществу принести, ты нормально обьясняй что не так делается. Не можешь обьяснить тогда не вмешивайся и не троль. Смысл твоих сообщений? Вот хорошая тема загнулась , а глядишь и что то хорошее бы вышло... 3 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 3я проблема решается кешируемым seo модулем, зачем резать поле если можно задать длину индекса? http://dev.mysql.com...eate-index.html SQL_CALC_FOUND_ROWS справедливо, но дальше по тексту не нашел SELECT FOUND_ROWS(); хотя может кому-то будет полезно. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. Очень круто, особенно с выложенным кодом измененных файлов! Но их всего 4 получилось? А как же контроллер акций? Или вы решили вырезать функциональность акционных цен, но тогда почему на гитхабе сохранились запросы из полей product_special? И я так понимаю, вы не делали денормализацию бд, а просто упомянули о том, что она тоже может помочь? Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 денормализация базы влечет за собой потерю совместимости, помимо существующих скриптов придется переписывать все новые модули которые работают с этими таблицами перед установкой. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 кстати, я бы FOUND_ROWS возвращал сразу с результатом, а не записывал в поле потому как конекшн один, все запросы идут через него, т.е. SELECT FOUND_ROWS будет гарантированно возвращать результат последнего запроса, а вот model_catalog_product->getFoundProducts() уже не факт Надіслати Поділитися на інших сайтах More sharing options... EVMedvedev Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. В Magento ребята лихо сделали. Там используется в качестве основы Entity-Attribute-Value модель организации данных, которая сам по себе очень тормозная. Но там есть функция, запуская которую по имеющимся данным строишь простую плоскую таблицу со всеми параметрами товаров. Таблицы создаются под каждый "Magento магазин" то есть даже для каждого языкового варианта данных. В результате вся работ во фронт офисе движка строится на основе всего двух плоских таблиц (товаров и категорий) и ни каких JOIN. Вот почему Magento может летать при большой номенклатуре на хостингах стоимостью 3.5 euro в месяц (140 рублей по нашему), причем даже при приличной посетительской активности (по несколько сотен человек в день). Единственный недостаток такого подхода, количество полей и их размеры должны быть такими, чтобы одна запись в плоской таблице не вываливалась за 1 блок оперативной памяти, то есть за 65К. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 Как я ни пытался применить изменения из статьи, подгоняя их под более старую версию ОС, не мог избавиться от ошибок из-за несоответствия 1.5.5.1 и 1.5.2.1, в итоге просто убрал rating из запроса (как я понимаю, в моей версии этого нет) $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id IN ('" . implode("','", array_keys($product_data)) . "')"); И наконец то загрузилась страница категории, но результаты меня как-то совсем не впечатлили (возможно я что-то упустил из виду, но изменений не много и они касаются всего 4 файлов, и единственные серьезные несоответствия есть только в контроллере product.php, но я их вроде бы все учел). Холодный старт с очищенным кешем БЕЗ изменений из статьи: Memory Usage: 8.073784 MB Execution Time: 0.040718 seconds 121 sql queries executed: Холодный старт с очищенным кешем С изменениями из статьи: Memory Usage: 8.070534 MB Execution Time: 0.152535 seconds 107 sql queries executed: Горячий старт с кешем БЕЗ изменений из статьи: Memory Usage: 8.026817 MB Execution Time: 0.09645 seconds 77 sql queries executed: Горячий старт с кешем С изменениями из статьи: Memory Usage: 8.022881 MB Execution Time: 0.251964 seconds 63 sql queries executed: Все измерения проводились локально с тремя повторами для чистоты эксперимента, цифры приблизительно те же. В категории 4 000 товаров, на страницу вывод 15-ти, всего в магазине 16 000 товаров Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 А не пытался сделать SQL_CALC_FOUND_ROWS ? У 1.5.5.1 была выпилена функциональность с подсчетом кол-ва товаров для меню. У меня - как в статье есть и такой кусок с SQL_CALC_FOUND_ROWS $sql = "SELECT SQL_CALC_FOUND_ROWS p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)"; А подсчет количества я сам выпилил давно уже, поэтому он не влияет Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Возможно дело в инструметах, я использовал это Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Уважаемые гуру SQL, подскажите работет ли сортировка во вложенном запросе вида SELECT my_field FROM my_table1 WHERE my_field_id IN (SELECT my_field2_id FROM my_table2 ORDER BY sorting_field); ??? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Yoda Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 тем самым закешировав активный пункт меню Из двух зол. как говорится раз. А два, никто не мешает сделать кеш под все категории верхнего уровня! Либо же вывести активную категорию в тплку, и одной строкойскрипта на Jquery применить стиль! Или перешерстить массив из кеша и всунуть ему актив в контроллере.. Вобщем, мальчик, включи фантазию и действуй, если надо! Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 либо же добавить в кеш массив категорий. база узкое место. 1 Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 Где то так, опять же если на скорую руку! $data=array('menu'); $menu = $this->cache->get('menu.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id')); $this->data['categories']= $menu; if (!$menu) { $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { if ($category['top']) { $children_data = array(); $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); if ($this->config->get('config_product_count')) { //$product_total = $this->model_catalog_product->getTotalProducts($data); $product_total=''; $child['name'] .= ' (' . $product_total . ')'; } $children_data[] = array( 'name' => $child['name'], 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } // Level 1 $this->data['categories'][] = array( 'name' => $category['name'], 'children' => $children_data, 'column' => $category['column'] ? $category['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']), // 'active' => in_array($category['category_id'], $parts) ); } } $menu = $this->data['categories']; $this->cache->set('menu.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') , $menu); } if (isset($parts)) { $this->data['categories']= array(); foreach ($menu as $category) { $this->data['categories'][] = array( 'name' => $category['name'], 'children' => $category['children'], 'column' => $category['column'] , 'href' => $category['href'] , 'active' => in_array($category['category_id'], $parts) ); } } UPD Благодаря тошноте некоторых, получается как то так! Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 эх, молоточек, не доучился ты на программиста, а советовать так и прёт ))) в решении Yesvik'а 1 запрос к базе. у тебя же по запросу на каждую главную категорию. да и не понятно к чему } elseif (isset($parts)) { выходит кеш будет работать только на страницах отличных от категорий. 1 Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 Тихо промолчу... А то кисо обидетсо! Слава богу на форуме не всем моск пхп заменило! Тебя уже раз предупреждали, за твое поведение по моему? Да и людей я не швыряю в отличии от некоторых ? А потом с боями бабло не возвращаю! Прекрати малышь, хамить! эх, молоточек, не доучился ты на программиста, а советовать так и прёт ))) Зато у меня магазины свои работают и я могу здесь тусить фо фан... И не бегать по личкам с предложениями по 500 рублей. А также не слушать отзывы "благодарных покупателей" недофильтра. И где это ты вдруг взял что я собирался учится на программиста, превращаться в тебеподобного зануду, нет никакого желания! И вместо своих чудовысеров. я тебе уже писал миллион раз! пиши альтернативу и правки!!!! А то пользы от этих вау фау, столько же, сколько от брызг от кучи... сам знаешь чего! UPD вспомнилась кстати история, меня б тут не было ваще, если бы чудо фрилансер сдал вовремя свои поделки года полтора назад моему товарищу, и не пришлось вместо него копать все самому. 5 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 да всё норм, успокойся, пиши свой чудо код, я в школе детям показывать буду как не надо делать. на досуге открой раздел дополнения и посчитай сколько раз мой ник там повторяется. в сообществе open sourse есть очень хорошее правило ИМХО. право голоса имеет лишь тот, кто сам чего-то достиг. иначе от недоучек не отобьешься ))) а по теме дайте знать когда придумаете что-то быстрее алгоритма Yesvik'а 2 Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 UPD... КАК ХОРОШО ЧТО ЕСТЬ ИГНОР!!! Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 в тему https://opencartforum.com/topic/10667-%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2-%D0%BD%D0%B0-%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9/ Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 20 лютого 2013 Share Опубліковано: 20 лютого 2013 Я статейку напишу более обстоятельную. А то так много полезной инфы уходит в никуда. Как продвигается? Куда смотреть, чтобы не упустить ее из виду? :-) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... avtozakup Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Фрилансер я хоть и новичек на форуме, но вот что заметил, нафиг ты троллишь? Люди пытаются пользу обществу принести, ты нормально обьясняй что не так делается. Не можешь обьяснить тогда не вмешивайся и не троль. Смысл твоих сообщений? Вот хорошая тема загнулась , а глядишь и что то хорошее бы вышло... 3 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 3я проблема решается кешируемым seo модулем, зачем резать поле если можно задать длину индекса? http://dev.mysql.com...eate-index.html SQL_CALC_FOUND_ROWS справедливо, но дальше по тексту не нашел SELECT FOUND_ROWS(); хотя может кому-то будет полезно. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. Очень круто, особенно с выложенным кодом измененных файлов! Но их всего 4 получилось? А как же контроллер акций? Или вы решили вырезать функциональность акционных цен, но тогда почему на гитхабе сохранились запросы из полей product_special? И я так понимаю, вы не делали денормализацию бд, а просто упомянули о том, что она тоже может помочь? Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 денормализация базы влечет за собой потерю совместимости, помимо существующих скриптов придется переписывать все новые модули которые работают с этими таблицами перед установкой. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 кстати, я бы FOUND_ROWS возвращал сразу с результатом, а не записывал в поле потому как конекшн один, все запросы идут через него, т.е. SELECT FOUND_ROWS будет гарантированно возвращать результат последнего запроса, а вот model_catalog_product->getFoundProducts() уже не факт Надіслати Поділитися на інших сайтах More sharing options... EVMedvedev Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. В Magento ребята лихо сделали. Там используется в качестве основы Entity-Attribute-Value модель организации данных, которая сам по себе очень тормозная. Но там есть функция, запуская которую по имеющимся данным строишь простую плоскую таблицу со всеми параметрами товаров. Таблицы создаются под каждый "Magento магазин" то есть даже для каждого языкового варианта данных. В результате вся работ во фронт офисе движка строится на основе всего двух плоских таблиц (товаров и категорий) и ни каких JOIN. Вот почему Magento может летать при большой номенклатуре на хостингах стоимостью 3.5 euro в месяц (140 рублей по нашему), причем даже при приличной посетительской активности (по несколько сотен человек в день). Единственный недостаток такого подхода, количество полей и их размеры должны быть такими, чтобы одна запись в плоской таблице не вываливалась за 1 блок оперативной памяти, то есть за 65К. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 Как я ни пытался применить изменения из статьи, подгоняя их под более старую версию ОС, не мог избавиться от ошибок из-за несоответствия 1.5.5.1 и 1.5.2.1, в итоге просто убрал rating из запроса (как я понимаю, в моей версии этого нет) $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id IN ('" . implode("','", array_keys($product_data)) . "')"); И наконец то загрузилась страница категории, но результаты меня как-то совсем не впечатлили (возможно я что-то упустил из виду, но изменений не много и они касаются всего 4 файлов, и единственные серьезные несоответствия есть только в контроллере product.php, но я их вроде бы все учел). Холодный старт с очищенным кешем БЕЗ изменений из статьи: Memory Usage: 8.073784 MB Execution Time: 0.040718 seconds 121 sql queries executed: Холодный старт с очищенным кешем С изменениями из статьи: Memory Usage: 8.070534 MB Execution Time: 0.152535 seconds 107 sql queries executed: Горячий старт с кешем БЕЗ изменений из статьи: Memory Usage: 8.026817 MB Execution Time: 0.09645 seconds 77 sql queries executed: Горячий старт с кешем С изменениями из статьи: Memory Usage: 8.022881 MB Execution Time: 0.251964 seconds 63 sql queries executed: Все измерения проводились локально с тремя повторами для чистоты эксперимента, цифры приблизительно те же. В категории 4 000 товаров, на страницу вывод 15-ти, всего в магазине 16 000 товаров Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 А не пытался сделать SQL_CALC_FOUND_ROWS ? У 1.5.5.1 была выпилена функциональность с подсчетом кол-ва товаров для меню. У меня - как в статье есть и такой кусок с SQL_CALC_FOUND_ROWS $sql = "SELECT SQL_CALC_FOUND_ROWS p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)"; А подсчет количества я сам выпилил давно уже, поэтому он не влияет Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Возможно дело в инструметах, я использовал это Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Уважаемые гуру SQL, подскажите работет ли сортировка во вложенном запросе вида SELECT my_field FROM my_table1 WHERE my_field_id IN (SELECT my_field2_id FROM my_table2 ORDER BY sorting_field); ??? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Yoda Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 Где то так, опять же если на скорую руку! $data=array('menu'); $menu = $this->cache->get('menu.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id')); $this->data['categories']= $menu; if (!$menu) { $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { if ($category['top']) { $children_data = array(); $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); if ($this->config->get('config_product_count')) { //$product_total = $this->model_catalog_product->getTotalProducts($data); $product_total=''; $child['name'] .= ' (' . $product_total . ')'; } $children_data[] = array( 'name' => $child['name'], 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } // Level 1 $this->data['categories'][] = array( 'name' => $category['name'], 'children' => $children_data, 'column' => $category['column'] ? $category['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']), // 'active' => in_array($category['category_id'], $parts) ); } } $menu = $this->data['categories']; $this->cache->set('menu.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') , $menu); } if (isset($parts)) { $this->data['categories']= array(); foreach ($menu as $category) { $this->data['categories'][] = array( 'name' => $category['name'], 'children' => $category['children'], 'column' => $category['column'] , 'href' => $category['href'] , 'active' => in_array($category['category_id'], $parts) ); } } UPD Благодаря тошноте некоторых, получается как то так! Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 эх, молоточек, не доучился ты на программиста, а советовать так и прёт ))) в решении Yesvik'а 1 запрос к базе. у тебя же по запросу на каждую главную категорию. да и не понятно к чему } elseif (isset($parts)) { выходит кеш будет работать только на страницах отличных от категорий. 1 Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 Тихо промолчу... А то кисо обидетсо! Слава богу на форуме не всем моск пхп заменило! Тебя уже раз предупреждали, за твое поведение по моему? Да и людей я не швыряю в отличии от некоторых ? А потом с боями бабло не возвращаю! Прекрати малышь, хамить! эх, молоточек, не доучился ты на программиста, а советовать так и прёт ))) Зато у меня магазины свои работают и я могу здесь тусить фо фан... И не бегать по личкам с предложениями по 500 рублей. А также не слушать отзывы "благодарных покупателей" недофильтра. И где это ты вдруг взял что я собирался учится на программиста, превращаться в тебеподобного зануду, нет никакого желания! И вместо своих чудовысеров. я тебе уже писал миллион раз! пиши альтернативу и правки!!!! А то пользы от этих вау фау, столько же, сколько от брызг от кучи... сам знаешь чего! UPD вспомнилась кстати история, меня б тут не было ваще, если бы чудо фрилансер сдал вовремя свои поделки года полтора назад моему товарищу, и не пришлось вместо него копать все самому. 5 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 да всё норм, успокойся, пиши свой чудо код, я в школе детям показывать буду как не надо делать. на досуге открой раздел дополнения и посчитай сколько раз мой ник там повторяется. в сообществе open sourse есть очень хорошее правило ИМХО. право голоса имеет лишь тот, кто сам чего-то достиг. иначе от недоучек не отобьешься ))) а по теме дайте знать когда придумаете что-то быстрее алгоритма Yesvik'а 2 Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 UPD... КАК ХОРОШО ЧТО ЕСТЬ ИГНОР!!! Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 в тему https://opencartforum.com/topic/10667-%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2-%D0%BD%D0%B0-%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9/ Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 20 лютого 2013 Share Опубліковано: 20 лютого 2013 Я статейку напишу более обстоятельную. А то так много полезной инфы уходит в никуда. Как продвигается? Куда смотреть, чтобы не упустить ее из виду? :-) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... avtozakup Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Фрилансер я хоть и новичек на форуме, но вот что заметил, нафиг ты троллишь? Люди пытаются пользу обществу принести, ты нормально обьясняй что не так делается. Не можешь обьяснить тогда не вмешивайся и не троль. Смысл твоих сообщений? Вот хорошая тема загнулась , а глядишь и что то хорошее бы вышло... 3 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 3я проблема решается кешируемым seo модулем, зачем резать поле если можно задать длину индекса? http://dev.mysql.com...eate-index.html SQL_CALC_FOUND_ROWS справедливо, но дальше по тексту не нашел SELECT FOUND_ROWS(); хотя может кому-то будет полезно. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. Очень круто, особенно с выложенным кодом измененных файлов! Но их всего 4 получилось? А как же контроллер акций? Или вы решили вырезать функциональность акционных цен, но тогда почему на гитхабе сохранились запросы из полей product_special? И я так понимаю, вы не делали денормализацию бд, а просто упомянули о том, что она тоже может помочь? Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 денормализация базы влечет за собой потерю совместимости, помимо существующих скриптов придется переписывать все новые модули которые работают с этими таблицами перед установкой. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 кстати, я бы FOUND_ROWS возвращал сразу с результатом, а не записывал в поле потому как конекшн один, все запросы идут через него, т.е. SELECT FOUND_ROWS будет гарантированно возвращать результат последнего запроса, а вот model_catalog_product->getFoundProducts() уже не факт Надіслати Поділитися на інших сайтах More sharing options... EVMedvedev Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. В Magento ребята лихо сделали. Там используется в качестве основы Entity-Attribute-Value модель организации данных, которая сам по себе очень тормозная. Но там есть функция, запуская которую по имеющимся данным строишь простую плоскую таблицу со всеми параметрами товаров. Таблицы создаются под каждый "Magento магазин" то есть даже для каждого языкового варианта данных. В результате вся работ во фронт офисе движка строится на основе всего двух плоских таблиц (товаров и категорий) и ни каких JOIN. Вот почему Magento может летать при большой номенклатуре на хостингах стоимостью 3.5 euro в месяц (140 рублей по нашему), причем даже при приличной посетительской активности (по несколько сотен человек в день). Единственный недостаток такого подхода, количество полей и их размеры должны быть такими, чтобы одна запись в плоской таблице не вываливалась за 1 блок оперативной памяти, то есть за 65К. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 Как я ни пытался применить изменения из статьи, подгоняя их под более старую версию ОС, не мог избавиться от ошибок из-за несоответствия 1.5.5.1 и 1.5.2.1, в итоге просто убрал rating из запроса (как я понимаю, в моей версии этого нет) $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id IN ('" . implode("','", array_keys($product_data)) . "')"); И наконец то загрузилась страница категории, но результаты меня как-то совсем не впечатлили (возможно я что-то упустил из виду, но изменений не много и они касаются всего 4 файлов, и единственные серьезные несоответствия есть только в контроллере product.php, но я их вроде бы все учел). Холодный старт с очищенным кешем БЕЗ изменений из статьи: Memory Usage: 8.073784 MB Execution Time: 0.040718 seconds 121 sql queries executed: Холодный старт с очищенным кешем С изменениями из статьи: Memory Usage: 8.070534 MB Execution Time: 0.152535 seconds 107 sql queries executed: Горячий старт с кешем БЕЗ изменений из статьи: Memory Usage: 8.026817 MB Execution Time: 0.09645 seconds 77 sql queries executed: Горячий старт с кешем С изменениями из статьи: Memory Usage: 8.022881 MB Execution Time: 0.251964 seconds 63 sql queries executed: Все измерения проводились локально с тремя повторами для чистоты эксперимента, цифры приблизительно те же. В категории 4 000 товаров, на страницу вывод 15-ти, всего в магазине 16 000 товаров Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 А не пытался сделать SQL_CALC_FOUND_ROWS ? У 1.5.5.1 была выпилена функциональность с подсчетом кол-ва товаров для меню. У меня - как в статье есть и такой кусок с SQL_CALC_FOUND_ROWS $sql = "SELECT SQL_CALC_FOUND_ROWS p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)"; А подсчет количества я сам выпилил давно уже, поэтому он не влияет Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Возможно дело в инструметах, я использовал это Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Уважаемые гуру SQL, подскажите работет ли сортировка во вложенном запросе вида SELECT my_field FROM my_table1 WHERE my_field_id IN (SELECT my_field2_id FROM my_table2 ORDER BY sorting_field); ??? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Yoda Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 Тихо промолчу... А то кисо обидетсо! Слава богу на форуме не всем моск пхп заменило! Тебя уже раз предупреждали, за твое поведение по моему? Да и людей я не швыряю в отличии от некоторых ? А потом с боями бабло не возвращаю! Прекрати малышь, хамить! эх, молоточек, не доучился ты на программиста, а советовать так и прёт ))) Зато у меня магазины свои работают и я могу здесь тусить фо фан... И не бегать по личкам с предложениями по 500 рублей. А также не слушать отзывы "благодарных покупателей" недофильтра. И где это ты вдруг взял что я собирался учится на программиста, превращаться в тебеподобного зануду, нет никакого желания! И вместо своих чудовысеров. я тебе уже писал миллион раз! пиши альтернативу и правки!!!! А то пользы от этих вау фау, столько же, сколько от брызг от кучи... сам знаешь чего! UPD вспомнилась кстати история, меня б тут не было ваще, если бы чудо фрилансер сдал вовремя свои поделки года полтора назад моему товарищу, и не пришлось вместо него копать все самому. 5 Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 да всё норм, успокойся, пиши свой чудо код, я в школе детям показывать буду как не надо делать. на досуге открой раздел дополнения и посчитай сколько раз мой ник там повторяется. в сообществе open sourse есть очень хорошее правило ИМХО. право голоса имеет лишь тот, кто сам чего-то достиг. иначе от недоучек не отобьешься ))) а по теме дайте знать когда придумаете что-то быстрее алгоритма Yesvik'а 2 Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 UPD... КАК ХОРОШО ЧТО ЕСТЬ ИГНОР!!! Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 в тему https://opencartforum.com/topic/10667-%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2-%D0%BD%D0%B0-%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9/ Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 20 лютого 2013 Share Опубліковано: 20 лютого 2013 Я статейку напишу более обстоятельную. А то так много полезной инфы уходит в никуда. Как продвигается? Куда смотреть, чтобы не упустить ее из виду? :-) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... avtozakup Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Фрилансер я хоть и новичек на форуме, но вот что заметил, нафиг ты троллишь? Люди пытаются пользу обществу принести, ты нормально обьясняй что не так делается. Не можешь обьяснить тогда не вмешивайся и не троль. Смысл твоих сообщений? Вот хорошая тема загнулась , а глядишь и что то хорошее бы вышло... 3 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 3я проблема решается кешируемым seo модулем, зачем резать поле если можно задать длину индекса? http://dev.mysql.com...eate-index.html SQL_CALC_FOUND_ROWS справедливо, но дальше по тексту не нашел SELECT FOUND_ROWS(); хотя может кому-то будет полезно. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. Очень круто, особенно с выложенным кодом измененных файлов! Но их всего 4 получилось? А как же контроллер акций? Или вы решили вырезать функциональность акционных цен, но тогда почему на гитхабе сохранились запросы из полей product_special? И я так понимаю, вы не делали денормализацию бд, а просто упомянули о том, что она тоже может помочь? Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 денормализация базы влечет за собой потерю совместимости, помимо существующих скриптов придется переписывать все новые модули которые работают с этими таблицами перед установкой. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 кстати, я бы FOUND_ROWS возвращал сразу с результатом, а не записывал в поле потому как конекшн один, все запросы идут через него, т.е. SELECT FOUND_ROWS будет гарантированно возвращать результат последнего запроса, а вот model_catalog_product->getFoundProducts() уже не факт Надіслати Поділитися на інших сайтах More sharing options... EVMedvedev Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. В Magento ребята лихо сделали. Там используется в качестве основы Entity-Attribute-Value модель организации данных, которая сам по себе очень тормозная. Но там есть функция, запуская которую по имеющимся данным строишь простую плоскую таблицу со всеми параметрами товаров. Таблицы создаются под каждый "Magento магазин" то есть даже для каждого языкового варианта данных. В результате вся работ во фронт офисе движка строится на основе всего двух плоских таблиц (товаров и категорий) и ни каких JOIN. Вот почему Magento может летать при большой номенклатуре на хостингах стоимостью 3.5 euro в месяц (140 рублей по нашему), причем даже при приличной посетительской активности (по несколько сотен человек в день). Единственный недостаток такого подхода, количество полей и их размеры должны быть такими, чтобы одна запись в плоской таблице не вываливалась за 1 блок оперативной памяти, то есть за 65К. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 Как я ни пытался применить изменения из статьи, подгоняя их под более старую версию ОС, не мог избавиться от ошибок из-за несоответствия 1.5.5.1 и 1.5.2.1, в итоге просто убрал rating из запроса (как я понимаю, в моей версии этого нет) $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id IN ('" . implode("','", array_keys($product_data)) . "')"); И наконец то загрузилась страница категории, но результаты меня как-то совсем не впечатлили (возможно я что-то упустил из виду, но изменений не много и они касаются всего 4 файлов, и единственные серьезные несоответствия есть только в контроллере product.php, но я их вроде бы все учел). Холодный старт с очищенным кешем БЕЗ изменений из статьи: Memory Usage: 8.073784 MB Execution Time: 0.040718 seconds 121 sql queries executed: Холодный старт с очищенным кешем С изменениями из статьи: Memory Usage: 8.070534 MB Execution Time: 0.152535 seconds 107 sql queries executed: Горячий старт с кешем БЕЗ изменений из статьи: Memory Usage: 8.026817 MB Execution Time: 0.09645 seconds 77 sql queries executed: Горячий старт с кешем С изменениями из статьи: Memory Usage: 8.022881 MB Execution Time: 0.251964 seconds 63 sql queries executed: Все измерения проводились локально с тремя повторами для чистоты эксперимента, цифры приблизительно те же. В категории 4 000 товаров, на страницу вывод 15-ти, всего в магазине 16 000 товаров Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 А не пытался сделать SQL_CALC_FOUND_ROWS ? У 1.5.5.1 была выпилена функциональность с подсчетом кол-ва товаров для меню. У меня - как в статье есть и такой кусок с SQL_CALC_FOUND_ROWS $sql = "SELECT SQL_CALC_FOUND_ROWS p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)"; А подсчет количества я сам выпилил давно уже, поэтому он не влияет Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Возможно дело в инструметах, я использовал это Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Уважаемые гуру SQL, подскажите работет ли сортировка во вложенном запросе вида SELECT my_field FROM my_table1 WHERE my_field_id IN (SELECT my_field2_id FROM my_table2 ORDER BY sorting_field); ??? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Yoda Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 UPD... КАК ХОРОШО ЧТО ЕСТЬ ИГНОР!!! Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 15 лютого 2013 Share Опубліковано: 15 лютого 2013 в тему https://opencartforum.com/topic/10667-%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2-%D0%BD%D0%B0-%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9/ Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 20 лютого 2013 Share Опубліковано: 20 лютого 2013 Я статейку напишу более обстоятельную. А то так много полезной инфы уходит в никуда. Как продвигается? Куда смотреть, чтобы не упустить ее из виду? :-) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... avtozakup Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Фрилансер я хоть и новичек на форуме, но вот что заметил, нафиг ты троллишь? Люди пытаются пользу обществу принести, ты нормально обьясняй что не так делается. Не можешь обьяснить тогда не вмешивайся и не троль. Смысл твоих сообщений? Вот хорошая тема загнулась , а глядишь и что то хорошее бы вышло... 3 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 3я проблема решается кешируемым seo модулем, зачем резать поле если можно задать длину индекса? http://dev.mysql.com...eate-index.html SQL_CALC_FOUND_ROWS справедливо, но дальше по тексту не нашел SELECT FOUND_ROWS(); хотя может кому-то будет полезно. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. Очень круто, особенно с выложенным кодом измененных файлов! Но их всего 4 получилось? А как же контроллер акций? Или вы решили вырезать функциональность акционных цен, но тогда почему на гитхабе сохранились запросы из полей product_special? И я так понимаю, вы не делали денормализацию бд, а просто упомянули о том, что она тоже может помочь? Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 денормализация базы влечет за собой потерю совместимости, помимо существующих скриптов придется переписывать все новые модули которые работают с этими таблицами перед установкой. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 кстати, я бы FOUND_ROWS возвращал сразу с результатом, а не записывал в поле потому как конекшн один, все запросы идут через него, т.е. SELECT FOUND_ROWS будет гарантированно возвращать результат последнего запроса, а вот model_catalog_product->getFoundProducts() уже не факт Надіслати Поділитися на інших сайтах More sharing options... EVMedvedev Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. В Magento ребята лихо сделали. Там используется в качестве основы Entity-Attribute-Value модель организации данных, которая сам по себе очень тормозная. Но там есть функция, запуская которую по имеющимся данным строишь простую плоскую таблицу со всеми параметрами товаров. Таблицы создаются под каждый "Magento магазин" то есть даже для каждого языкового варианта данных. В результате вся работ во фронт офисе движка строится на основе всего двух плоских таблиц (товаров и категорий) и ни каких JOIN. Вот почему Magento может летать при большой номенклатуре на хостингах стоимостью 3.5 euro в месяц (140 рублей по нашему), причем даже при приличной посетительской активности (по несколько сотен человек в день). Единственный недостаток такого подхода, количество полей и их размеры должны быть такими, чтобы одна запись в плоской таблице не вываливалась за 1 блок оперативной памяти, то есть за 65К. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 Как я ни пытался применить изменения из статьи, подгоняя их под более старую версию ОС, не мог избавиться от ошибок из-за несоответствия 1.5.5.1 и 1.5.2.1, в итоге просто убрал rating из запроса (как я понимаю, в моей версии этого нет) $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id IN ('" . implode("','", array_keys($product_data)) . "')"); И наконец то загрузилась страница категории, но результаты меня как-то совсем не впечатлили (возможно я что-то упустил из виду, но изменений не много и они касаются всего 4 файлов, и единственные серьезные несоответствия есть только в контроллере product.php, но я их вроде бы все учел). Холодный старт с очищенным кешем БЕЗ изменений из статьи: Memory Usage: 8.073784 MB Execution Time: 0.040718 seconds 121 sql queries executed: Холодный старт с очищенным кешем С изменениями из статьи: Memory Usage: 8.070534 MB Execution Time: 0.152535 seconds 107 sql queries executed: Горячий старт с кешем БЕЗ изменений из статьи: Memory Usage: 8.026817 MB Execution Time: 0.09645 seconds 77 sql queries executed: Горячий старт с кешем С изменениями из статьи: Memory Usage: 8.022881 MB Execution Time: 0.251964 seconds 63 sql queries executed: Все измерения проводились локально с тремя повторами для чистоты эксперимента, цифры приблизительно те же. В категории 4 000 товаров, на страницу вывод 15-ти, всего в магазине 16 000 товаров Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 А не пытался сделать SQL_CALC_FOUND_ROWS ? У 1.5.5.1 была выпилена функциональность с подсчетом кол-ва товаров для меню. У меня - как в статье есть и такой кусок с SQL_CALC_FOUND_ROWS $sql = "SELECT SQL_CALC_FOUND_ROWS p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)"; А подсчет количества я сам выпилил давно уже, поэтому он не влияет Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Возможно дело в инструметах, я использовал это Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Уважаемые гуру SQL, подскажите работет ли сортировка во вложенном запросе вида SELECT my_field FROM my_table1 WHERE my_field_id IN (SELECT my_field2_id FROM my_table2 ORDER BY sorting_field); ??? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
RGB Опубліковано: 20 лютого 2013 Share Опубліковано: 20 лютого 2013 Я статейку напишу более обстоятельную. А то так много полезной инфы уходит в никуда. Как продвигается? Куда смотреть, чтобы не упустить ее из виду? :-) Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... avtozakup Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Фрилансер я хоть и новичек на форуме, но вот что заметил, нафиг ты троллишь? Люди пытаются пользу обществу принести, ты нормально обьясняй что не так делается. Не можешь обьяснить тогда не вмешивайся и не троль. Смысл твоих сообщений? Вот хорошая тема загнулась , а глядишь и что то хорошее бы вышло... 3 Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 3я проблема решается кешируемым seo модулем, зачем резать поле если можно задать длину индекса? http://dev.mysql.com...eate-index.html SQL_CALC_FOUND_ROWS справедливо, но дальше по тексту не нашел SELECT FOUND_ROWS(); хотя может кому-то будет полезно. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. Очень круто, особенно с выложенным кодом измененных файлов! Но их всего 4 получилось? А как же контроллер акций? Или вы решили вырезать функциональность акционных цен, но тогда почему на гитхабе сохранились запросы из полей product_special? И я так понимаю, вы не делали денормализацию бд, а просто упомянули о том, что она тоже может помочь? Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 денормализация базы влечет за собой потерю совместимости, помимо существующих скриптов придется переписывать все новые модули которые работают с этими таблицами перед установкой. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 кстати, я бы FOUND_ROWS возвращал сразу с результатом, а не записывал в поле потому как конекшн один, все запросы идут через него, т.е. SELECT FOUND_ROWS будет гарантированно возвращать результат последнего запроса, а вот model_catalog_product->getFoundProducts() уже не факт Надіслати Поділитися на інших сайтах More sharing options... EVMedvedev Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. В Magento ребята лихо сделали. Там используется в качестве основы Entity-Attribute-Value модель организации данных, которая сам по себе очень тормозная. Но там есть функция, запуская которую по имеющимся данным строишь простую плоскую таблицу со всеми параметрами товаров. Таблицы создаются под каждый "Magento магазин" то есть даже для каждого языкового варианта данных. В результате вся работ во фронт офисе движка строится на основе всего двух плоских таблиц (товаров и категорий) и ни каких JOIN. Вот почему Magento может летать при большой номенклатуре на хостингах стоимостью 3.5 euro в месяц (140 рублей по нашему), причем даже при приличной посетительской активности (по несколько сотен человек в день). Единственный недостаток такого подхода, количество полей и их размеры должны быть такими, чтобы одна запись в плоской таблице не вываливалась за 1 блок оперативной памяти, то есть за 65К. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 Как я ни пытался применить изменения из статьи, подгоняя их под более старую версию ОС, не мог избавиться от ошибок из-за несоответствия 1.5.5.1 и 1.5.2.1, в итоге просто убрал rating из запроса (как я понимаю, в моей версии этого нет) $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id IN ('" . implode("','", array_keys($product_data)) . "')"); И наконец то загрузилась страница категории, но результаты меня как-то совсем не впечатлили (возможно я что-то упустил из виду, но изменений не много и они касаются всего 4 файлов, и единственные серьезные несоответствия есть только в контроллере product.php, но я их вроде бы все учел). Холодный старт с очищенным кешем БЕЗ изменений из статьи: Memory Usage: 8.073784 MB Execution Time: 0.040718 seconds 121 sql queries executed: Холодный старт с очищенным кешем С изменениями из статьи: Memory Usage: 8.070534 MB Execution Time: 0.152535 seconds 107 sql queries executed: Горячий старт с кешем БЕЗ изменений из статьи: Memory Usage: 8.026817 MB Execution Time: 0.09645 seconds 77 sql queries executed: Горячий старт с кешем С изменениями из статьи: Memory Usage: 8.022881 MB Execution Time: 0.251964 seconds 63 sql queries executed: Все измерения проводились локально с тремя повторами для чистоты эксперимента, цифры приблизительно те же. В категории 4 000 товаров, на страницу вывод 15-ти, всего в магазине 16 000 товаров Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 А не пытался сделать SQL_CALC_FOUND_ROWS ? У 1.5.5.1 была выпилена функциональность с подсчетом кол-ва товаров для меню. У меня - как в статье есть и такой кусок с SQL_CALC_FOUND_ROWS $sql = "SELECT SQL_CALC_FOUND_ROWS p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)"; А подсчет количества я сам выпилил давно уже, поэтому он не влияет Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Возможно дело в инструметах, я использовал это Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Уважаемые гуру SQL, подскажите работет ли сортировка во вложенном запросе вида SELECT my_field FROM my_table1 WHERE my_field_id IN (SELECT my_field2_id FROM my_table2 ORDER BY sorting_field); ??? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
avtozakup Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Фрилансер я хоть и новичек на форуме, но вот что заметил, нафиг ты троллишь? Люди пытаются пользу обществу принести, ты нормально обьясняй что не так делается. Не можешь обьяснить тогда не вмешивайся и не троль. Смысл твоих сообщений? Вот хорошая тема загнулась , а глядишь и что то хорошее бы вышло... 3 Надіслати Поділитися на інших сайтах More sharing options...
freelancer Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 3я проблема решается кешируемым seo модулем, зачем резать поле если можно задать длину индекса? http://dev.mysql.com...eate-index.html SQL_CALC_FOUND_ROWS справедливо, но дальше по тексту не нашел SELECT FOUND_ROWS(); хотя может кому-то будет полезно. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. Очень круто, особенно с выложенным кодом измененных файлов! Но их всего 4 получилось? А как же контроллер акций? Или вы решили вырезать функциональность акционных цен, но тогда почему на гитхабе сохранились запросы из полей product_special? И я так понимаю, вы не делали денормализацию бд, а просто упомянули о том, что она тоже может помочь? Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 денормализация базы влечет за собой потерю совместимости, помимо существующих скриптов придется переписывать все новые модули которые работают с этими таблицами перед установкой. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 кстати, я бы FOUND_ROWS возвращал сразу с результатом, а не записывал в поле потому как конекшн один, все запросы идут через него, т.е. SELECT FOUND_ROWS будет гарантированно возвращать результат последнего запроса, а вот model_catalog_product->getFoundProducts() уже не факт Надіслати Поділитися на інших сайтах More sharing options... EVMedvedev Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. В Magento ребята лихо сделали. Там используется в качестве основы Entity-Attribute-Value модель организации данных, которая сам по себе очень тормозная. Но там есть функция, запуская которую по имеющимся данным строишь простую плоскую таблицу со всеми параметрами товаров. Таблицы создаются под каждый "Magento магазин" то есть даже для каждого языкового варианта данных. В результате вся работ во фронт офисе движка строится на основе всего двух плоских таблиц (товаров и категорий) и ни каких JOIN. Вот почему Magento может летать при большой номенклатуре на хостингах стоимостью 3.5 euro в месяц (140 рублей по нашему), причем даже при приличной посетительской активности (по несколько сотен человек в день). Единственный недостаток такого подхода, количество полей и их размеры должны быть такими, чтобы одна запись в плоской таблице не вываливалась за 1 блок оперативной памяти, то есть за 65К. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 Как я ни пытался применить изменения из статьи, подгоняя их под более старую версию ОС, не мог избавиться от ошибок из-за несоответствия 1.5.5.1 и 1.5.2.1, в итоге просто убрал rating из запроса (как я понимаю, в моей версии этого нет) $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id IN ('" . implode("','", array_keys($product_data)) . "')"); И наконец то загрузилась страница категории, но результаты меня как-то совсем не впечатлили (возможно я что-то упустил из виду, но изменений не много и они касаются всего 4 файлов, и единственные серьезные несоответствия есть только в контроллере product.php, но я их вроде бы все учел). Холодный старт с очищенным кешем БЕЗ изменений из статьи: Memory Usage: 8.073784 MB Execution Time: 0.040718 seconds 121 sql queries executed: Холодный старт с очищенным кешем С изменениями из статьи: Memory Usage: 8.070534 MB Execution Time: 0.152535 seconds 107 sql queries executed: Горячий старт с кешем БЕЗ изменений из статьи: Memory Usage: 8.026817 MB Execution Time: 0.09645 seconds 77 sql queries executed: Горячий старт с кешем С изменениями из статьи: Memory Usage: 8.022881 MB Execution Time: 0.251964 seconds 63 sql queries executed: Все измерения проводились локально с тремя повторами для чистоты эксперимента, цифры приблизительно те же. В категории 4 000 товаров, на страницу вывод 15-ти, всего в магазине 16 000 товаров Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 А не пытался сделать SQL_CALC_FOUND_ROWS ? У 1.5.5.1 была выпилена функциональность с подсчетом кол-ва товаров для меню. У меня - как в статье есть и такой кусок с SQL_CALC_FOUND_ROWS $sql = "SELECT SQL_CALC_FOUND_ROWS p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)"; А подсчет количества я сам выпилил давно уже, поэтому он не влияет Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Возможно дело в инструметах, я использовал это Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Уважаемые гуру SQL, подскажите работет ли сортировка во вложенном запросе вида SELECT my_field FROM my_table1 WHERE my_field_id IN (SELECT my_field2_id FROM my_table2 ORDER BY sorting_field); ??? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
RGB Опубліковано: 4 березня 2013 Share Опубліковано: 4 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. Очень круто, особенно с выложенным кодом измененных файлов! Но их всего 4 получилось? А как же контроллер акций? Или вы решили вырезать функциональность акционных цен, но тогда почему на гитхабе сохранились запросы из полей product_special? И я так понимаю, вы не делали денормализацию бд, а просто упомянули о том, что она тоже может помочь? Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 денормализация базы влечет за собой потерю совместимости, помимо существующих скриптов придется переписывать все новые модули которые работают с этими таблицами перед установкой. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 кстати, я бы FOUND_ROWS возвращал сразу с результатом, а не записывал в поле потому как конекшн один, все запросы идут через него, т.е. SELECT FOUND_ROWS будет гарантированно возвращать результат последнего запроса, а вот model_catalog_product->getFoundProducts() уже не факт Надіслати Поділитися на інших сайтах More sharing options... EVMedvedev Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. В Magento ребята лихо сделали. Там используется в качестве основы Entity-Attribute-Value модель организации данных, которая сам по себе очень тормозная. Но там есть функция, запуская которую по имеющимся данным строишь простую плоскую таблицу со всеми параметрами товаров. Таблицы создаются под каждый "Magento магазин" то есть даже для каждого языкового варианта данных. В результате вся работ во фронт офисе движка строится на основе всего двух плоских таблиц (товаров и категорий) и ни каких JOIN. Вот почему Magento может летать при большой номенклатуре на хостингах стоимостью 3.5 euro в месяц (140 рублей по нашему), причем даже при приличной посетительской активности (по несколько сотен человек в день). Единственный недостаток такого подхода, количество полей и их размеры должны быть такими, чтобы одна запись в плоской таблице не вываливалась за 1 блок оперативной памяти, то есть за 65К. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 Как я ни пытался применить изменения из статьи, подгоняя их под более старую версию ОС, не мог избавиться от ошибок из-за несоответствия 1.5.5.1 и 1.5.2.1, в итоге просто убрал rating из запроса (как я понимаю, в моей версии этого нет) $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id IN ('" . implode("','", array_keys($product_data)) . "')"); И наконец то загрузилась страница категории, но результаты меня как-то совсем не впечатлили (возможно я что-то упустил из виду, но изменений не много и они касаются всего 4 файлов, и единственные серьезные несоответствия есть только в контроллере product.php, но я их вроде бы все учел). Холодный старт с очищенным кешем БЕЗ изменений из статьи: Memory Usage: 8.073784 MB Execution Time: 0.040718 seconds 121 sql queries executed: Холодный старт с очищенным кешем С изменениями из статьи: Memory Usage: 8.070534 MB Execution Time: 0.152535 seconds 107 sql queries executed: Горячий старт с кешем БЕЗ изменений из статьи: Memory Usage: 8.026817 MB Execution Time: 0.09645 seconds 77 sql queries executed: Горячий старт с кешем С изменениями из статьи: Memory Usage: 8.022881 MB Execution Time: 0.251964 seconds 63 sql queries executed: Все измерения проводились локально с тремя повторами для чистоты эксперимента, цифры приблизительно те же. В категории 4 000 товаров, на страницу вывод 15-ти, всего в магазине 16 000 товаров Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 А не пытался сделать SQL_CALC_FOUND_ROWS ? У 1.5.5.1 была выпилена функциональность с подсчетом кол-ва товаров для меню. У меня - как в статье есть и такой кусок с SQL_CALC_FOUND_ROWS $sql = "SELECT SQL_CALC_FOUND_ROWS p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)"; А подсчет количества я сам выпилил давно уже, поэтому он не влияет Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Возможно дело в инструметах, я использовал это Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Уважаемые гуру SQL, подскажите работет ли сортировка во вложенном запросе вида SELECT my_field FROM my_table1 WHERE my_field_id IN (SELECT my_field2_id FROM my_table2 ORDER BY sorting_field); ??? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 денормализация базы влечет за собой потерю совместимости, помимо существующих скриптов придется переписывать все новые модули которые работают с этими таблицами перед установкой. Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 кстати, я бы FOUND_ROWS возвращал сразу с результатом, а не записывал в поле потому как конекшн один, все запросы идут через него, т.е. SELECT FOUND_ROWS будет гарантированно возвращать результат последнего запроса, а вот model_catalog_product->getFoundProducts() уже не факт Надіслати Поділитися на інших сайтах More sharing options... EVMedvedev Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. В Magento ребята лихо сделали. Там используется в качестве основы Entity-Attribute-Value модель организации данных, которая сам по себе очень тормозная. Но там есть функция, запуская которую по имеющимся данным строишь простую плоскую таблицу со всеми параметрами товаров. Таблицы создаются под каждый "Magento магазин" то есть даже для каждого языкового варианта данных. В результате вся работ во фронт офисе движка строится на основе всего двух плоских таблиц (товаров и категорий) и ни каких JOIN. Вот почему Magento может летать при большой номенклатуре на хостингах стоимостью 3.5 euro в месяц (140 рублей по нашему), причем даже при приличной посетительской активности (по несколько сотен человек в день). Единственный недостаток такого подхода, количество полей и их размеры должны быть такими, чтобы одна запись в плоской таблице не вываливалась за 1 блок оперативной памяти, то есть за 65К. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 Как я ни пытался применить изменения из статьи, подгоняя их под более старую версию ОС, не мог избавиться от ошибок из-за несоответствия 1.5.5.1 и 1.5.2.1, в итоге просто убрал rating из запроса (как я понимаю, в моей версии этого нет) $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id IN ('" . implode("','", array_keys($product_data)) . "')"); И наконец то загрузилась страница категории, но результаты меня как-то совсем не впечатлили (возможно я что-то упустил из виду, но изменений не много и они касаются всего 4 файлов, и единственные серьезные несоответствия есть только в контроллере product.php, но я их вроде бы все учел). Холодный старт с очищенным кешем БЕЗ изменений из статьи: Memory Usage: 8.073784 MB Execution Time: 0.040718 seconds 121 sql queries executed: Холодный старт с очищенным кешем С изменениями из статьи: Memory Usage: 8.070534 MB Execution Time: 0.152535 seconds 107 sql queries executed: Горячий старт с кешем БЕЗ изменений из статьи: Memory Usage: 8.026817 MB Execution Time: 0.09645 seconds 77 sql queries executed: Горячий старт с кешем С изменениями из статьи: Memory Usage: 8.022881 MB Execution Time: 0.251964 seconds 63 sql queries executed: Все измерения проводились локально с тремя повторами для чистоты эксперимента, цифры приблизительно те же. В категории 4 000 товаров, на страницу вывод 15-ти, всего в магазине 16 000 товаров Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 А не пытался сделать SQL_CALC_FOUND_ROWS ? У 1.5.5.1 была выпилена функциональность с подсчетом кол-ва товаров для меню. У меня - как в статье есть и такой кусок с SQL_CALC_FOUND_ROWS $sql = "SELECT SQL_CALC_FOUND_ROWS p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)"; А подсчет количества я сам выпилил давно уже, поэтому он не влияет Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Возможно дело в инструметах, я использовал это Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Уважаемые гуру SQL, подскажите работет ли сортировка во вложенном запросе вида SELECT my_field FROM my_table1 WHERE my_field_id IN (SELECT my_field2_id FROM my_table2 ORDER BY sorting_field); ??? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
freelancer Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 кстати, я бы FOUND_ROWS возвращал сразу с результатом, а не записывал в поле потому как конекшн один, все запросы идут через него, т.е. SELECT FOUND_ROWS будет гарантированно возвращать результат последнего запроса, а вот model_catalog_product->getFoundProducts() уже не факт Надіслати Поділитися на інших сайтах More sharing options... EVMedvedev Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. В Magento ребята лихо сделали. Там используется в качестве основы Entity-Attribute-Value модель организации данных, которая сам по себе очень тормозная. Но там есть функция, запуская которую по имеющимся данным строишь простую плоскую таблицу со всеми параметрами товаров. Таблицы создаются под каждый "Magento магазин" то есть даже для каждого языкового варианта данных. В результате вся работ во фронт офисе движка строится на основе всего двух плоских таблиц (товаров и категорий) и ни каких JOIN. Вот почему Magento может летать при большой номенклатуре на хостингах стоимостью 3.5 euro в месяц (140 рублей по нашему), причем даже при приличной посетительской активности (по несколько сотен человек в день). Единственный недостаток такого подхода, количество полей и их размеры должны быть такими, чтобы одна запись в плоской таблице не вываливалась за 1 блок оперативной памяти, то есть за 65К. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 Как я ни пытался применить изменения из статьи, подгоняя их под более старую версию ОС, не мог избавиться от ошибок из-за несоответствия 1.5.5.1 и 1.5.2.1, в итоге просто убрал rating из запроса (как я понимаю, в моей версии этого нет) $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id IN ('" . implode("','", array_keys($product_data)) . "')"); И наконец то загрузилась страница категории, но результаты меня как-то совсем не впечатлили (возможно я что-то упустил из виду, но изменений не много и они касаются всего 4 файлов, и единственные серьезные несоответствия есть только в контроллере product.php, но я их вроде бы все учел). Холодный старт с очищенным кешем БЕЗ изменений из статьи: Memory Usage: 8.073784 MB Execution Time: 0.040718 seconds 121 sql queries executed: Холодный старт с очищенным кешем С изменениями из статьи: Memory Usage: 8.070534 MB Execution Time: 0.152535 seconds 107 sql queries executed: Горячий старт с кешем БЕЗ изменений из статьи: Memory Usage: 8.026817 MB Execution Time: 0.09645 seconds 77 sql queries executed: Горячий старт с кешем С изменениями из статьи: Memory Usage: 8.022881 MB Execution Time: 0.251964 seconds 63 sql queries executed: Все измерения проводились локально с тремя повторами для чистоты эксперимента, цифры приблизительно те же. В категории 4 000 товаров, на страницу вывод 15-ти, всего в магазине 16 000 товаров Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 А не пытался сделать SQL_CALC_FOUND_ROWS ? У 1.5.5.1 была выпилена функциональность с подсчетом кол-ва товаров для меню. У меня - как в статье есть и такой кусок с SQL_CALC_FOUND_ROWS $sql = "SELECT SQL_CALC_FOUND_ROWS p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)"; А подсчет количества я сам выпилил давно уже, поэтому он не влияет Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Возможно дело в инструметах, я использовал это Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Уважаемые гуру SQL, подскажите работет ли сортировка во вложенном запросе вида SELECT my_field FROM my_table1 WHERE my_field_id IN (SELECT my_field2_id FROM my_table2 ORDER BY sorting_field); ??? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
EVMedvedev Опубліковано: 5 березня 2013 Share Опубліковано: 5 березня 2013 Обещанная статейка. Если хотите обсуждать ее, давайте по теме - SQL. Я понимаю, что кэширование, VPS и все такое никто не отменял, но ДО них есть не самые быстрые SQL-запросы. В Magento ребята лихо сделали. Там используется в качестве основы Entity-Attribute-Value модель организации данных, которая сам по себе очень тормозная. Но там есть функция, запуская которую по имеющимся данным строишь простую плоскую таблицу со всеми параметрами товаров. Таблицы создаются под каждый "Magento магазин" то есть даже для каждого языкового варианта данных. В результате вся работ во фронт офисе движка строится на основе всего двух плоских таблиц (товаров и категорий) и ни каких JOIN. Вот почему Magento может летать при большой номенклатуре на хостингах стоимостью 3.5 euro в месяц (140 рублей по нашему), причем даже при приличной посетительской активности (по несколько сотен человек в день). Единственный недостаток такого подхода, количество полей и их размеры должны быть такими, чтобы одна запись в плоской таблице не вываливалась за 1 блок оперативной памяти, то есть за 65К. Надіслати Поділитися на інших сайтах More sharing options...
RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 Как я ни пытался применить изменения из статьи, подгоняя их под более старую версию ОС, не мог избавиться от ошибок из-за несоответствия 1.5.5.1 и 1.5.2.1, в итоге просто убрал rating из запроса (как я понимаю, в моей версии этого нет) $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id IN ('" . implode("','", array_keys($product_data)) . "')"); И наконец то загрузилась страница категории, но результаты меня как-то совсем не впечатлили (возможно я что-то упустил из виду, но изменений не много и они касаются всего 4 файлов, и единственные серьезные несоответствия есть только в контроллере product.php, но я их вроде бы все учел). Холодный старт с очищенным кешем БЕЗ изменений из статьи: Memory Usage: 8.073784 MB Execution Time: 0.040718 seconds 121 sql queries executed: Холодный старт с очищенным кешем С изменениями из статьи: Memory Usage: 8.070534 MB Execution Time: 0.152535 seconds 107 sql queries executed: Горячий старт с кешем БЕЗ изменений из статьи: Memory Usage: 8.026817 MB Execution Time: 0.09645 seconds 77 sql queries executed: Горячий старт с кешем С изменениями из статьи: Memory Usage: 8.022881 MB Execution Time: 0.251964 seconds 63 sql queries executed: Все измерения проводились локально с тремя повторами для чистоты эксперимента, цифры приблизительно те же. В категории 4 000 товаров, на страницу вывод 15-ти, всего в магазине 16 000 товаров Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 А не пытался сделать SQL_CALC_FOUND_ROWS ? У 1.5.5.1 была выпилена функциональность с подсчетом кол-ва товаров для меню. У меня - как в статье есть и такой кусок с SQL_CALC_FOUND_ROWS $sql = "SELECT SQL_CALC_FOUND_ROWS p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)"; А подсчет количества я сам выпилил давно уже, поэтому он не влияет Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Возможно дело в инструметах, я использовал это Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Уважаемые гуру SQL, подскажите работет ли сортировка во вложенном запросе вида SELECT my_field FROM my_table1 WHERE my_field_id IN (SELECT my_field2_id FROM my_table2 ORDER BY sorting_field); ??? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
RGB Опубліковано: 6 березня 2013 Share Опубліковано: 6 березня 2013 А не пытался сделать SQL_CALC_FOUND_ROWS ? У 1.5.5.1 была выпилена функциональность с подсчетом кол-ва товаров для меню. У меня - как в статье есть и такой кусок с SQL_CALC_FOUND_ROWS $sql = "SELECT SQL_CALC_FOUND_ROWS p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "') AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "')) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)"; А подсчет количества я сам выпилил давно уже, поэтому он не влияет Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Возможно дело в инструметах, я использовал это Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Уважаемые гуру SQL, подскажите работет ли сортировка во вложенном запросе вида SELECT my_field FROM my_table1 WHERE my_field_id IN (SELECT my_field2_id FROM my_table2 ORDER BY sorting_field); ??? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
RGB Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Возможно дело в инструметах, я использовал это Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Уважаемые гуру SQL, подскажите работет ли сортировка во вложенном запросе вида SELECT my_field FROM my_table1 WHERE my_field_id IN (SELECT my_field2_id FROM my_table2 ORDER BY sorting_field); ??? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
costas Опубліковано: 7 березня 2013 Share Опубліковано: 7 березня 2013 Уважаемые гуру SQL, подскажите работет ли сортировка во вложенном запросе вида SELECT my_field FROM my_table1 WHERE my_field_id IN (SELECT my_field2_id FROM my_table2 ORDER BY sorting_field); ??? Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
pashast Опубліковано: 7 березня 2013 Автор Share Опубліковано: 7 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
RGB Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 Пробовал на демке из первого сообщения на 120к товарах. Среднее время загрузки страниц категорий улучшилось из 0,100 сек до 0,065 Результат отличный, спасибо. Блин, ребята, а что же у меня на 1.5.2.1 никаких приростов нет? И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Надіслати Поділитися на інших сайтах More sharing options... freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
freelancer Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Оптимизация движка под 120 000 товаров
pashast Опубліковано: 8 березня 2013 Автор Share Опубліковано: 8 березня 2013 И еще подумал - не все ли равно, какое время загрузки страниц, если оно на порядок меньше времени загрузки всех картинок? Какая разница посетителю - 0.1 или 0.06 с, если картинки грузятся дольше Картинки кэшируются на стороне клиента, а на посещаемых сайтах картинки обычно выносят на другой сервер. В большинстве случаев проблема медленной загрузки, как раз в скорости выполнения запросов. + неизвестно что будет с таким сайтом на 10к посетителей в сутки. эта 0,1 секунда может превратится в 10, а с правками запросов уже будет 6 сек :ugeek: Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Схожі публікації Дублируються запросы в базу данных. Автор: mario512, 6 вересня 2022 mysql opencart (і ще %d) Теги: mysql opencart птн пнх 4 відповіді 753 перегляди mario512 6 вересня 2022 работа с базой данных Автор: AlexMax13, 1 серпня 2022 база данных mysql 8 відповідей 1 218 переглядів diterknobloch 27 лютого 2023 Модуль SQL менеджер SQL Buddy [Поддержка] 1 2 Автор: sv2109, 26 липня 2013 mysql 32 відповіді 7 030 переглядів PetrSemenov 29 жовтня 2017 Кто какой программой пользуется для SQL Автор: multitask85, 10 лютого 2022 mysql 20 відповідей 1 538 переглядів clarionio 22 березня 2022 кириллица в б/д Автор: satt, 8 лютого 2022 mysql utf-8 0 відповідей 479 переглядів satt 8 лютого 2022 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
costas Опубліковано: 8 березня 2013 Share Опубліковано: 8 березня 2013 есть мнение, что поисковики индексируют быстрее сайты если у тех загрузка меньше Есть такое, один раз меняли хостинг из-за того что индексация была корявая, хостинг тормозил переодически, после смены всё стало на ура. Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 2 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1
Recommended Posts