snastik Опубліковано: 14 березня 2013 Share Опубліковано: 14 березня 2013 (змінено) Да, я не могу представить ситуацию, когда захочется именно дублировать дополнительно для фильтра то, что уже и так есть в атрибутах. Теоретически я понимаю, плюс всего один - возможность отделения мух от котлет, если кол-во атрибутов и кол-во элементов, участвующих в фильтрации, слишком разное. Но на практике не встречал таких ситуаций. То ли атрибутов у каждого товара несколько десятков, а фильтр нужен не по всем, а только по парочке? Для снижения нагрузки на фильтр, получается? То ли ещё что? Можете на конкретных примерах пояснить практические плюсы? Или только тот, что я назвал, и он все неудобства покрывает? Змінено 16 березня 2013 користувачем snastik Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 14 березня 2013 Share Опубліковано: 14 березня 2013 вот пара моих примеров Во, и как раз то, что называется "гостевой эффект" :) Тыкаю наугад и выбираю в фильтре: Категория: Электрогенераторы Тип генератора: Бензиновые Мощность кВт: 6 - 7 кВт Количество фаз: 3 фазы Метод запуска: Автоматический (АВР) Остается 5 товаров. Нажимаю на первый - и вижу мощность 7.5 кВт. Какая замечательная иллюстрация. Это то, что называется отсутствием нормализации и вредом дублирования. В общем, идея, как я понял, именно та, которую я называл. В атрибутах есть мощности (5.5, 6.5, ... кВт), а в фильтре для уменьшения вариантов они включаются в одну из групп (5-7 кВт и т.д.) Но я до сих пор не понимаю зачем так много дублировать и вносить ошибки, если проще добавить ещё один "группировочный" атрибут. Смысл тот же, что при дублировании (атрибуты отдельно, фильтр отдельно), но таких групп надо 2-3 (из 20 в среднем атрибутов на каждый товар), правильно? То есть 2-3 лишних атрибута для служебных целей. А остальные можно просто галочками включать или выключать для участия в работе фильтра. Вероятность ошибок - гораздо ниже, чем если всё то же самое мы банально ВЫНУЖДЕНЫ дублировать. Один раз в атрибутах, другой - в значениях фильтра. Об этом же и речь. Да, естественно - желательно иметь возможность указывать, какие атрибуты и опции участвуют в работе фильтра и навигации. Например, это "группировочный" с диапазонами - есть в фильтре, а пара атрибутов с точными значениями мощности (номинальная и максимальная) - не участвуют. (Не знаю, есть ли это в том фильтре, который на ваших сайтах используется.) Но дублировать?... Прелести подхода я и после этих примеров ещё не понял, скорее убедился в обратном. Или не туда смотрел и не всё увидел? Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 14 березня 2013 Share Опубліковано: 14 березня 2013 Исправил ошибочку, выложил на гитхаб. До атрибутов я еще не добрался (первая попытка показала ухудшение результатов, но возможно виной тому мои кривые руки), но вот по исправлению начала самого первого запроса $query = $this->db->query("SELECT DISTINCT *, p.rating, pd.name AS name, p.image, m.name AS manufacturer, таким образом $query = $this->db->query("SELECT DISTINCT pd.name AS name, p.image, m.name AS manufacturer, ничего хорошего не дало - если убрать *, сыпятся нотисы: Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: image in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 184Notice: Undefined index: tax_class_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 191Notice: Undefined index: special in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 196Notice: Undefined index: special in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 203Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 215Notice: Undefined index: name in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 217Notice: Undefined index: model in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 218Notice: Undefined index: stock_status_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 219Notice: Undefined index: date_available in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 220Notice: Undefined index: sku in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 221Notice: Undefined index: upc in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 222Notice: Undefined index: quantity in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 226Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 232 Вы проверяли это у себя? Мне кажется, нужно сделать так (по крайней мере, у меня так работает): $query = $this->db->query("SELECT DISTINCT p.product_id, p.price, p.tax_class_id, p.model, p.sku, p.quantity, p.stock_status_id, p.date_available, p.upc, pd.name AS name, p.image, m.name AS manufacturer, Надіслати Поділитися на інших сайтах More sharing options... snastik Опубліковано: 14 березня 2013 Share Опубліковано: 14 березня 2013 (змінено) Во, и как раз то, что называется "гостевой эффект" :) Тыкаю наугад и выбираю в фильтре: Категория: Электрогенераторы Тип генератора: Бензиновые Мощность кВт: 6 - 7 кВт Количество фаз: 3 фазы Метод запуска: Автоматический (АВР) Остается 5 товаров. Нажимаю на первый - и вижу мощность 7.5 кВт. Какая замечательная иллюстрация. Это то, что называется отсутствием нормализации и вредом дублирования. В общем, идея, как я понял, именно та, которую я называл. В атрибутах есть мощности (5.5, 6.5, ... кВт), а в фильтре для уменьшения вариантов они включаются в одну из групп (5-7 кВт и т.д.) Но я до сих пор не понимаю зачем так много дублировать и вносить ошибки, если проще добавить ещё один "группировочный" атрибут. Смысл тот же, что при дублировании (атрибуты отдельно, фильтр отдельно), но таких групп надо 2-3 (из 20 в среднем атрибутов на каждый товар), правильно? То есть 2-3 лишних атрибута для служебных целей. А остальные можно просто галочками включать или выключать для участия в работе фильтра. Вероятность ошибок - гораздо ниже, чем если всё то же самое мы банально ВЫНУЖДЕНЫ дублировать. Один раз в атрибутах, другой - в значениях фильтра. Об этом же и речь. Да, естественно - желательно иметь возможность указывать, какие атрибуты и опции участвуют в работе фильтра и навигации. Например, это "группировочный" с диапазонами - есть в фильтре, а пара атрибутов с точными значениями мощности (номинальная и максимальная) - не участвуют. (Не знаю, есть ли это в том фильтре, который на ваших сайтах используется.) Но дублировать?... Прелести подхода я и после этих примеров ещё не понял, скорее убедился в обратном. Или не туда смотрел и не всё увидел? я же в первом сообщении написал что на 0.1.9.4 так и есть имеется ввиду что у каждой группы атрибутов есть возможность выбора где она участвует. 1. для характеристики 2. для фильтра 3. для сравнения насчет 7,5 киловат то тут указана мощность максимальная а менеджер отвечающий за группу товаров отнес его в диапазон до 7 киловат только лиш потому что он знает что номинал у него до 7 тут все сложно многие производители указывают только максимальную мощность и следят чтобы мы указывали именно так и никак иначе вторые указывают свою мощность в кВа что меньше киловата и тоже пытаются подсунуть свои циферки повыше а нам нужно подобрать генератор не по циферкам на капоте а по реальным показателям чтобы у клиента потом насос запустился или лебедка включилась и так далее. rb2 если тема интересна милости прошу в личку, иначе тема по оптимизации опенкарт превратится в тему как выбрать генератор и на что стоит обратить свое внимание :-) Змінено 14 березня 2013 користувачем snastik Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Во, и как раз то, что называется "гостевой эффект" :) Тыкаю наугад и выбираю в фильтре: Категория: Электрогенераторы Тип генератора: Бензиновые Мощность кВт: 6 - 7 кВт Количество фаз: 3 фазы Метод запуска: Автоматический (АВР) Остается 5 товаров. Нажимаю на первый - и вижу мощность 7.5 кВт. Какая замечательная иллюстрация. Это то, что называется отсутствием нормализации и вредом дублирования. В общем, идея, как я понял, именно та, которую я называл. В атрибутах есть мощности (5.5, 6.5, ... кВт), а в фильтре для уменьшения вариантов они включаются в одну из групп (5-7 кВт и т.д.) Но я до сих пор не понимаю зачем так много дублировать и вносить ошибки, если проще добавить ещё один "группировочный" атрибут. Смысл тот же, что при дублировании (атрибуты отдельно, фильтр отдельно), но таких групп надо 2-3 (из 20 в среднем атрибутов на каждый товар), правильно? То есть 2-3 лишних атрибута для служебных целей. А остальные можно просто галочками включать или выключать для участия в работе фильтра. Вероятность ошибок - гораздо ниже, чем если всё то же самое мы банально ВЫНУЖДЕНЫ дублировать. Один раз в атрибутах, другой - в значениях фильтра. Об этом же и речь. Да, естественно - желательно иметь возможность указывать, какие атрибуты и опции участвуют в работе фильтра и навигации. Например, это "группировочный" с диапазонами - есть в фильтре, а пара атрибутов с точными значениями мощности (номинальная и максимальная) - не участвуют. (Не знаю, есть ли это в том фильтре, который на ваших сайтах используется.) Но дублировать?... Прелести подхода я и после этих примеров ещё не понял, скорее убедился в обратном. Или не туда смотрел и не всё увидел? ну да, тут напрашивается полузнок с шагом .5, но включать в выборку фильтра значения которого там не должно быть это криво. Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 До атрибутов я еще не добрался (первая попытка показала ухудшение результатов, но возможно виной тому мои кривые руки), но вот по исправлению начала самого первого запроса $query = $this->db->query("SELECT DISTINCT *, p.rating, pd.name AS name, p.image, m.name AS manufacturer, таким образом $query = $this->db->query("SELECT DISTINCT pd.name AS name, p.image, m.name AS manufacturer, ничего хорошего не дало - если убрать *, сыпятся нотисы: Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: image in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 184Notice: Undefined index: tax_class_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 191Notice: Undefined index: special in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 196Notice: Undefined index: special in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 203Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 215Notice: Undefined index: name in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 217Notice: Undefined index: model in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 218Notice: Undefined index: stock_status_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 219Notice: Undefined index: date_available in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 220Notice: Undefined index: sku in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 221Notice: Undefined index: upc in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 222Notice: Undefined index: quantity in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 226Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 232 Вы проверяли это у себя? Мне кажется, нужно сделать так (по крайней мере, у меня так работает): $query = $this->db->query("SELECT DISTINCT p.product_id, p.price, p.tax_class_id, p.model, p.sku, p.quantity, p.stock_status_id, p.date_available, p.upc, pd.name AS name, p.image, m.name AS manufacturer, * нужно не убирать, а заменить на соответвующие поля из таблицы productнапример p.image, p.price, p.tax_class_id, и тд Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 * нужно не убирать, а заменить на соответвующие поля из таблицы product например p.image, p.price, p.tax_class_id, и тд Да опять экономия на спичках... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Да опять экономия на спичках... да нет, как раз тут не спички, если у вас сто товаров тогда спички, а если 100+тыс тогда далеко не спички. Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 15 березня 2013 Автор Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет. У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 rb2 если тема интересна милости прошу в личку, иначе тема по оптимизации опенкарт превратится в тему как выбрать генератор и на что стоит обратить свое внимание :-) Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Да опять экономия на спичках... Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Так я про фильтр ни слова не говорил - я его отключал, когда проверял изменения. В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) О чем в моем сообщении и шла речь! Только я вместо * подставил все нужные поля конкретно из моего случая. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... А Вы тестируете на одного пользовтаеля? То есть запрос одной страницы в одной сессии? А если на 30 - 50 сессий, результат будет такой же? Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Ну сами то подумайте :) да еще и кеш никто не отменял (напоминаю) А вот про хипы... myisam Showing rows 0 - 29 ( 108,408 total, Query took 0.0136 sec) MEMORY Showing rows 0 - 29 ( 108,408 total, Query took 0.0003 sec) Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Дык хай-лоад или 120к+ товаров? Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... P.S. Про размер кук особливо порадовало :) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Yesvik показывал, как с этим можно бороться. Суть в том, чтобы вложенным запросом сначала выбрать ID нужной сотни товаров, а только потом навешивать на них все JOIN-ы. Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Дык хай-лоад или 120к+ товаров? Одно другому не мешает. В чём вопрос-то? По сути. Понимаю ли я разницу? Понимаю. Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... Что-то Вы издалека начали. Давайте сэкономим друг другу время, а? У меня член 25 см. P.S. Про размер кук особливо порадовало :) Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Вот к стате хороший пример при выборе 1000 товаров - у человека ответы в кеш скорее всего не влезали или кей буфер переполнялся просто... над бы это дело как нить сэмитировать... ну предлагать поднять лимит на один запрос в кеше я думаю уже не надо... :) Просто где она там выборка с ответом включащих описание товара и еще каких полей которые не индексированы в 100+ позиций найти не могу... а то бы бенчнул. Серчь не предлагать он тупой это и без того понятно... Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Статья порадовала... тут хоть понятно почему это происходит :) Только это было уже можно сказать в прошлом веке... они бы еще ютьюб тогда потестили в 720р Table 1. Response times for various cookie sizes Cookie Size Median Response Time (Delta) 0 bytes 78 ms (0 ms) 500 bytes 79 ms (+1 ms) 1000 bytes 94 ms (+16 ms) 1500 bytes 109 ms (+31 ms) 2000 bytes 125 ms (+47 ms) 2500 bytes 141 ms (+63 ms) 3000 bytes 156 ms (+78 ms) Note: Times are for page loads on DSL (~800 kbps). Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... vikingshop Опубліковано: 27 березня 2013 Share Опубліковано: 27 березня 2013 Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Иммено так и вот сегодня поймал то о чем вы говорили, а иммено увидел converting HEAP to MyISAM... все дело в том что сначала действительно все выбирается во временную таблицу в память и если ее не хватает то все пишется на диск и это просто убивает производительность. А при select * выбераются туда все поля... решается вопрос повышением хипа и верменной таблицы... т.ч. совет вашему клиенту посмотреть размер таблиц которые в выборке и сравнить их с этими параметрами, т.к. думаю что он может всеравно встать на теже грабли что и с селект * только чуть позже. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... esess74 Опубліковано: 29 квітня 2013 Share Опубліковано: 29 квітня 2013 Hi! Izvinite za shrift... russkogo netu :) Nachnem s togo chto s IT osobo ne druzzu :) Problema u menja takaja.... Opencart dvizzok - bolee 100 000 tovarov, v buduschem okolo 500 000... VPS Hosting data: 70GB Hard Disk 3072MB/6144MB RAM 7000GB Bandwidth Saijt tormozit - normaljno otkrivaetsa toljko home stranica... Sokratil kategorii tovarov do minimuma (4-8)....Brand List to Product page - inogda 30 sec... Admin Product page load time - 1 min, no chashche vsego 504 Gateway Time-out Search - uzzasno medlenno, ili 504 Gateway Time-out admin/php.ini magic_quotes_gpc = Off;register_globals = Off;default_charset = UTF-8;memory_limit = 2048M;max_execution_time = 180000;upload_max_filesize = 9999M;safe_mode = Off;mysql.connect_timeout = 200;session.use_cookies = On;session.use_trans_sid = Off;session.gc_maxlifetime = 12000000;allow_url_fopen = on; Vozmozzno li nastroitj, za razumnuju cenu, chtobi vsje rabotalo, kak nado? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... RGB Опубліковано: 13 травня 2013 Share Опубліковано: 13 травня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет.У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Вот и до меня наконец то дошло, что сортировка вообще не работает при оптимизации (это я обновил свою 1.5.2.1 и заново пытался ее ускорить) :-) filterpro то использует свою сортировку, вот и не было видно ошибок, а сейчас стало сразу понятно + у вас на демке даже все эти ошибки видны (несмотря на отсутствие производителей или акций, можно открыть поиск и попытаться отсортировать выборку, например, по цене) Надіслати Поділитися на інших сайтах More sharing options... delovoy Опубліковано: 14 травня 2013 Share Опубліковано: 14 травня 2013 Параметры VPS: 12 ядер; 1ГБ оперативы, загрузить ее по полной так и не получилось, максимум 290МБ. 12 ядер? :ugeek: Это где такие ВПС? А частота какая гарантированная? Что за тип виртуализации? Просто интересно... У других ВДС с 3072MB/6144MB RAM Жесть, и где такая халява блин? 1 Надіслати Поділитися на інших сайтах More sharing options... 5 weeks later... ingenerks Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ним скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузить сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Надіслати Поділитися на інших сайтах More sharing options... charlito Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ни-кэгм скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузи-кэшть сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Кэш-кэш-кэш... Кэш - НЕ панацея. Тоже пробовал его нормальный кешер! Надіслати Поділитися на інших сайтах More sharing options... 8 months later... siniy Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Кэш-кэш-кэш... Кэш - НЕ панацея. может и не панацея... предложите свое решение? у вас есть метод решения скорости работы opencart на 100-150К товаров путем оптимизации именно движка, запросов и так далее а не оптимизации сервера... так как я например на шаред сижу... и там ничего не наоптимизируешь... есть решения или нет? Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 5 з 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
rb2 Опубліковано: 14 березня 2013 Share Опубліковано: 14 березня 2013 вот пара моих примеров Во, и как раз то, что называется "гостевой эффект" :) Тыкаю наугад и выбираю в фильтре: Категория: Электрогенераторы Тип генератора: Бензиновые Мощность кВт: 6 - 7 кВт Количество фаз: 3 фазы Метод запуска: Автоматический (АВР) Остается 5 товаров. Нажимаю на первый - и вижу мощность 7.5 кВт. Какая замечательная иллюстрация. Это то, что называется отсутствием нормализации и вредом дублирования. В общем, идея, как я понял, именно та, которую я называл. В атрибутах есть мощности (5.5, 6.5, ... кВт), а в фильтре для уменьшения вариантов они включаются в одну из групп (5-7 кВт и т.д.) Но я до сих пор не понимаю зачем так много дублировать и вносить ошибки, если проще добавить ещё один "группировочный" атрибут. Смысл тот же, что при дублировании (атрибуты отдельно, фильтр отдельно), но таких групп надо 2-3 (из 20 в среднем атрибутов на каждый товар), правильно? То есть 2-3 лишних атрибута для служебных целей. А остальные можно просто галочками включать или выключать для участия в работе фильтра. Вероятность ошибок - гораздо ниже, чем если всё то же самое мы банально ВЫНУЖДЕНЫ дублировать. Один раз в атрибутах, другой - в значениях фильтра. Об этом же и речь. Да, естественно - желательно иметь возможность указывать, какие атрибуты и опции участвуют в работе фильтра и навигации. Например, это "группировочный" с диапазонами - есть в фильтре, а пара атрибутов с точными значениями мощности (номинальная и максимальная) - не участвуют. (Не знаю, есть ли это в том фильтре, который на ваших сайтах используется.) Но дублировать?... Прелести подхода я и после этих примеров ещё не понял, скорее убедился в обратном. Или не туда смотрел и не всё увидел? Надіслати Поділитися на інших сайтах More sharing options...
RGB Опубліковано: 14 березня 2013 Share Опубліковано: 14 березня 2013 Исправил ошибочку, выложил на гитхаб. До атрибутов я еще не добрался (первая попытка показала ухудшение результатов, но возможно виной тому мои кривые руки), но вот по исправлению начала самого первого запроса $query = $this->db->query("SELECT DISTINCT *, p.rating, pd.name AS name, p.image, m.name AS manufacturer, таким образом $query = $this->db->query("SELECT DISTINCT pd.name AS name, p.image, m.name AS manufacturer, ничего хорошего не дало - если убрать *, сыпятся нотисы: Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: image in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 184Notice: Undefined index: tax_class_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 191Notice: Undefined index: special in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 196Notice: Undefined index: special in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 203Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 215Notice: Undefined index: name in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 217Notice: Undefined index: model in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 218Notice: Undefined index: stock_status_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 219Notice: Undefined index: date_available in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 220Notice: Undefined index: sku in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 221Notice: Undefined index: upc in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 222Notice: Undefined index: quantity in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 226Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 232 Вы проверяли это у себя? Мне кажется, нужно сделать так (по крайней мере, у меня так работает): $query = $this->db->query("SELECT DISTINCT p.product_id, p.price, p.tax_class_id, p.model, p.sku, p.quantity, p.stock_status_id, p.date_available, p.upc, pd.name AS name, p.image, m.name AS manufacturer, Надіслати Поділитися на інших сайтах More sharing options... snastik Опубліковано: 14 березня 2013 Share Опубліковано: 14 березня 2013 (змінено) Во, и как раз то, что называется "гостевой эффект" :) Тыкаю наугад и выбираю в фильтре: Категория: Электрогенераторы Тип генератора: Бензиновые Мощность кВт: 6 - 7 кВт Количество фаз: 3 фазы Метод запуска: Автоматический (АВР) Остается 5 товаров. Нажимаю на первый - и вижу мощность 7.5 кВт. Какая замечательная иллюстрация. Это то, что называется отсутствием нормализации и вредом дублирования. В общем, идея, как я понял, именно та, которую я называл. В атрибутах есть мощности (5.5, 6.5, ... кВт), а в фильтре для уменьшения вариантов они включаются в одну из групп (5-7 кВт и т.д.) Но я до сих пор не понимаю зачем так много дублировать и вносить ошибки, если проще добавить ещё один "группировочный" атрибут. Смысл тот же, что при дублировании (атрибуты отдельно, фильтр отдельно), но таких групп надо 2-3 (из 20 в среднем атрибутов на каждый товар), правильно? То есть 2-3 лишних атрибута для служебных целей. А остальные можно просто галочками включать или выключать для участия в работе фильтра. Вероятность ошибок - гораздо ниже, чем если всё то же самое мы банально ВЫНУЖДЕНЫ дублировать. Один раз в атрибутах, другой - в значениях фильтра. Об этом же и речь. Да, естественно - желательно иметь возможность указывать, какие атрибуты и опции участвуют в работе фильтра и навигации. Например, это "группировочный" с диапазонами - есть в фильтре, а пара атрибутов с точными значениями мощности (номинальная и максимальная) - не участвуют. (Не знаю, есть ли это в том фильтре, который на ваших сайтах используется.) Но дублировать?... Прелести подхода я и после этих примеров ещё не понял, скорее убедился в обратном. Или не туда смотрел и не всё увидел? я же в первом сообщении написал что на 0.1.9.4 так и есть имеется ввиду что у каждой группы атрибутов есть возможность выбора где она участвует. 1. для характеристики 2. для фильтра 3. для сравнения насчет 7,5 киловат то тут указана мощность максимальная а менеджер отвечающий за группу товаров отнес его в диапазон до 7 киловат только лиш потому что он знает что номинал у него до 7 тут все сложно многие производители указывают только максимальную мощность и следят чтобы мы указывали именно так и никак иначе вторые указывают свою мощность в кВа что меньше киловата и тоже пытаются подсунуть свои циферки повыше а нам нужно подобрать генератор не по циферкам на капоте а по реальным показателям чтобы у клиента потом насос запустился или лебедка включилась и так далее. rb2 если тема интересна милости прошу в личку, иначе тема по оптимизации опенкарт превратится в тему как выбрать генератор и на что стоит обратить свое внимание :-) Змінено 14 березня 2013 користувачем snastik Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Во, и как раз то, что называется "гостевой эффект" :) Тыкаю наугад и выбираю в фильтре: Категория: Электрогенераторы Тип генератора: Бензиновые Мощность кВт: 6 - 7 кВт Количество фаз: 3 фазы Метод запуска: Автоматический (АВР) Остается 5 товаров. Нажимаю на первый - и вижу мощность 7.5 кВт. Какая замечательная иллюстрация. Это то, что называется отсутствием нормализации и вредом дублирования. В общем, идея, как я понял, именно та, которую я называл. В атрибутах есть мощности (5.5, 6.5, ... кВт), а в фильтре для уменьшения вариантов они включаются в одну из групп (5-7 кВт и т.д.) Но я до сих пор не понимаю зачем так много дублировать и вносить ошибки, если проще добавить ещё один "группировочный" атрибут. Смысл тот же, что при дублировании (атрибуты отдельно, фильтр отдельно), но таких групп надо 2-3 (из 20 в среднем атрибутов на каждый товар), правильно? То есть 2-3 лишних атрибута для служебных целей. А остальные можно просто галочками включать или выключать для участия в работе фильтра. Вероятность ошибок - гораздо ниже, чем если всё то же самое мы банально ВЫНУЖДЕНЫ дублировать. Один раз в атрибутах, другой - в значениях фильтра. Об этом же и речь. Да, естественно - желательно иметь возможность указывать, какие атрибуты и опции участвуют в работе фильтра и навигации. Например, это "группировочный" с диапазонами - есть в фильтре, а пара атрибутов с точными значениями мощности (номинальная и максимальная) - не участвуют. (Не знаю, есть ли это в том фильтре, который на ваших сайтах используется.) Но дублировать?... Прелести подхода я и после этих примеров ещё не понял, скорее убедился в обратном. Или не туда смотрел и не всё увидел? ну да, тут напрашивается полузнок с шагом .5, но включать в выборку фильтра значения которого там не должно быть это криво. Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 До атрибутов я еще не добрался (первая попытка показала ухудшение результатов, но возможно виной тому мои кривые руки), но вот по исправлению начала самого первого запроса $query = $this->db->query("SELECT DISTINCT *, p.rating, pd.name AS name, p.image, m.name AS manufacturer, таким образом $query = $this->db->query("SELECT DISTINCT pd.name AS name, p.image, m.name AS manufacturer, ничего хорошего не дало - если убрать *, сыпятся нотисы: Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: image in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 184Notice: Undefined index: tax_class_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 191Notice: Undefined index: special in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 196Notice: Undefined index: special in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 203Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 215Notice: Undefined index: name in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 217Notice: Undefined index: model in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 218Notice: Undefined index: stock_status_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 219Notice: Undefined index: date_available in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 220Notice: Undefined index: sku in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 221Notice: Undefined index: upc in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 222Notice: Undefined index: quantity in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 226Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 232 Вы проверяли это у себя? Мне кажется, нужно сделать так (по крайней мере, у меня так работает): $query = $this->db->query("SELECT DISTINCT p.product_id, p.price, p.tax_class_id, p.model, p.sku, p.quantity, p.stock_status_id, p.date_available, p.upc, pd.name AS name, p.image, m.name AS manufacturer, * нужно не убирать, а заменить на соответвующие поля из таблицы productнапример p.image, p.price, p.tax_class_id, и тд Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 * нужно не убирать, а заменить на соответвующие поля из таблицы product например p.image, p.price, p.tax_class_id, и тд Да опять экономия на спичках... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Да опять экономия на спичках... да нет, как раз тут не спички, если у вас сто товаров тогда спички, а если 100+тыс тогда далеко не спички. Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 15 березня 2013 Автор Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет. У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 rb2 если тема интересна милости прошу в личку, иначе тема по оптимизации опенкарт превратится в тему как выбрать генератор и на что стоит обратить свое внимание :-) Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Да опять экономия на спичках... Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Так я про фильтр ни слова не говорил - я его отключал, когда проверял изменения. В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) О чем в моем сообщении и шла речь! Только я вместо * подставил все нужные поля конкретно из моего случая. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... А Вы тестируете на одного пользовтаеля? То есть запрос одной страницы в одной сессии? А если на 30 - 50 сессий, результат будет такой же? Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Ну сами то подумайте :) да еще и кеш никто не отменял (напоминаю) А вот про хипы... myisam Showing rows 0 - 29 ( 108,408 total, Query took 0.0136 sec) MEMORY Showing rows 0 - 29 ( 108,408 total, Query took 0.0003 sec) Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Дык хай-лоад или 120к+ товаров? Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... P.S. Про размер кук особливо порадовало :) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Yesvik показывал, как с этим можно бороться. Суть в том, чтобы вложенным запросом сначала выбрать ID нужной сотни товаров, а только потом навешивать на них все JOIN-ы. Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Дык хай-лоад или 120к+ товаров? Одно другому не мешает. В чём вопрос-то? По сути. Понимаю ли я разницу? Понимаю. Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... Что-то Вы издалека начали. Давайте сэкономим друг другу время, а? У меня член 25 см. P.S. Про размер кук особливо порадовало :) Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Вот к стате хороший пример при выборе 1000 товаров - у человека ответы в кеш скорее всего не влезали или кей буфер переполнялся просто... над бы это дело как нить сэмитировать... ну предлагать поднять лимит на один запрос в кеше я думаю уже не надо... :) Просто где она там выборка с ответом включащих описание товара и еще каких полей которые не индексированы в 100+ позиций найти не могу... а то бы бенчнул. Серчь не предлагать он тупой это и без того понятно... Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Статья порадовала... тут хоть понятно почему это происходит :) Только это было уже можно сказать в прошлом веке... они бы еще ютьюб тогда потестили в 720р Table 1. Response times for various cookie sizes Cookie Size Median Response Time (Delta) 0 bytes 78 ms (0 ms) 500 bytes 79 ms (+1 ms) 1000 bytes 94 ms (+16 ms) 1500 bytes 109 ms (+31 ms) 2000 bytes 125 ms (+47 ms) 2500 bytes 141 ms (+63 ms) 3000 bytes 156 ms (+78 ms) Note: Times are for page loads on DSL (~800 kbps). Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... vikingshop Опубліковано: 27 березня 2013 Share Опубліковано: 27 березня 2013 Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Иммено так и вот сегодня поймал то о чем вы говорили, а иммено увидел converting HEAP to MyISAM... все дело в том что сначала действительно все выбирается во временную таблицу в память и если ее не хватает то все пишется на диск и это просто убивает производительность. А при select * выбераются туда все поля... решается вопрос повышением хипа и верменной таблицы... т.ч. совет вашему клиенту посмотреть размер таблиц которые в выборке и сравнить их с этими параметрами, т.к. думаю что он может всеравно встать на теже грабли что и с селект * только чуть позже. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... esess74 Опубліковано: 29 квітня 2013 Share Опубліковано: 29 квітня 2013 Hi! Izvinite za shrift... russkogo netu :) Nachnem s togo chto s IT osobo ne druzzu :) Problema u menja takaja.... Opencart dvizzok - bolee 100 000 tovarov, v buduschem okolo 500 000... VPS Hosting data: 70GB Hard Disk 3072MB/6144MB RAM 7000GB Bandwidth Saijt tormozit - normaljno otkrivaetsa toljko home stranica... Sokratil kategorii tovarov do minimuma (4-8)....Brand List to Product page - inogda 30 sec... Admin Product page load time - 1 min, no chashche vsego 504 Gateway Time-out Search - uzzasno medlenno, ili 504 Gateway Time-out admin/php.ini magic_quotes_gpc = Off;register_globals = Off;default_charset = UTF-8;memory_limit = 2048M;max_execution_time = 180000;upload_max_filesize = 9999M;safe_mode = Off;mysql.connect_timeout = 200;session.use_cookies = On;session.use_trans_sid = Off;session.gc_maxlifetime = 12000000;allow_url_fopen = on; Vozmozzno li nastroitj, za razumnuju cenu, chtobi vsje rabotalo, kak nado? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... RGB Опубліковано: 13 травня 2013 Share Опубліковано: 13 травня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет.У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Вот и до меня наконец то дошло, что сортировка вообще не работает при оптимизации (это я обновил свою 1.5.2.1 и заново пытался ее ускорить) :-) filterpro то использует свою сортировку, вот и не было видно ошибок, а сейчас стало сразу понятно + у вас на демке даже все эти ошибки видны (несмотря на отсутствие производителей или акций, можно открыть поиск и попытаться отсортировать выборку, например, по цене) Надіслати Поділитися на інших сайтах More sharing options... delovoy Опубліковано: 14 травня 2013 Share Опубліковано: 14 травня 2013 Параметры VPS: 12 ядер; 1ГБ оперативы, загрузить ее по полной так и не получилось, максимум 290МБ. 12 ядер? :ugeek: Это где такие ВПС? А частота какая гарантированная? Что за тип виртуализации? Просто интересно... У других ВДС с 3072MB/6144MB RAM Жесть, и где такая халява блин? 1 Надіслати Поділитися на інших сайтах More sharing options... 5 weeks later... ingenerks Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ним скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузить сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Надіслати Поділитися на інших сайтах More sharing options... charlito Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ни-кэгм скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузи-кэшть сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Кэш-кэш-кэш... Кэш - НЕ панацея. Тоже пробовал его нормальный кешер! Надіслати Поділитися на інших сайтах More sharing options... 8 months later... siniy Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Кэш-кэш-кэш... Кэш - НЕ панацея. может и не панацея... предложите свое решение? у вас есть метод решения скорости работы opencart на 100-150К товаров путем оптимизации именно движка, запросов и так далее а не оптимизации сервера... так как я например на шаред сижу... и там ничего не наоптимизируешь... есть решения или нет? Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 5 з 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
snastik Опубліковано: 14 березня 2013 Share Опубліковано: 14 березня 2013 (змінено) Во, и как раз то, что называется "гостевой эффект" :) Тыкаю наугад и выбираю в фильтре: Категория: Электрогенераторы Тип генератора: Бензиновые Мощность кВт: 6 - 7 кВт Количество фаз: 3 фазы Метод запуска: Автоматический (АВР) Остается 5 товаров. Нажимаю на первый - и вижу мощность 7.5 кВт. Какая замечательная иллюстрация. Это то, что называется отсутствием нормализации и вредом дублирования. В общем, идея, как я понял, именно та, которую я называл. В атрибутах есть мощности (5.5, 6.5, ... кВт), а в фильтре для уменьшения вариантов они включаются в одну из групп (5-7 кВт и т.д.) Но я до сих пор не понимаю зачем так много дублировать и вносить ошибки, если проще добавить ещё один "группировочный" атрибут. Смысл тот же, что при дублировании (атрибуты отдельно, фильтр отдельно), но таких групп надо 2-3 (из 20 в среднем атрибутов на каждый товар), правильно? То есть 2-3 лишних атрибута для служебных целей. А остальные можно просто галочками включать или выключать для участия в работе фильтра. Вероятность ошибок - гораздо ниже, чем если всё то же самое мы банально ВЫНУЖДЕНЫ дублировать. Один раз в атрибутах, другой - в значениях фильтра. Об этом же и речь. Да, естественно - желательно иметь возможность указывать, какие атрибуты и опции участвуют в работе фильтра и навигации. Например, это "группировочный" с диапазонами - есть в фильтре, а пара атрибутов с точными значениями мощности (номинальная и максимальная) - не участвуют. (Не знаю, есть ли это в том фильтре, который на ваших сайтах используется.) Но дублировать?... Прелести подхода я и после этих примеров ещё не понял, скорее убедился в обратном. Или не туда смотрел и не всё увидел? я же в первом сообщении написал что на 0.1.9.4 так и есть имеется ввиду что у каждой группы атрибутов есть возможность выбора где она участвует. 1. для характеристики 2. для фильтра 3. для сравнения насчет 7,5 киловат то тут указана мощность максимальная а менеджер отвечающий за группу товаров отнес его в диапазон до 7 киловат только лиш потому что он знает что номинал у него до 7 тут все сложно многие производители указывают только максимальную мощность и следят чтобы мы указывали именно так и никак иначе вторые указывают свою мощность в кВа что меньше киловата и тоже пытаются подсунуть свои циферки повыше а нам нужно подобрать генератор не по циферкам на капоте а по реальным показателям чтобы у клиента потом насос запустился или лебедка включилась и так далее. rb2 если тема интересна милости прошу в личку, иначе тема по оптимизации опенкарт превратится в тему как выбрать генератор и на что стоит обратить свое внимание :-) Змінено 14 березня 2013 користувачем snastik Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Во, и как раз то, что называется "гостевой эффект" :) Тыкаю наугад и выбираю в фильтре: Категория: Электрогенераторы Тип генератора: Бензиновые Мощность кВт: 6 - 7 кВт Количество фаз: 3 фазы Метод запуска: Автоматический (АВР) Остается 5 товаров. Нажимаю на первый - и вижу мощность 7.5 кВт. Какая замечательная иллюстрация. Это то, что называется отсутствием нормализации и вредом дублирования. В общем, идея, как я понял, именно та, которую я называл. В атрибутах есть мощности (5.5, 6.5, ... кВт), а в фильтре для уменьшения вариантов они включаются в одну из групп (5-7 кВт и т.д.) Но я до сих пор не понимаю зачем так много дублировать и вносить ошибки, если проще добавить ещё один "группировочный" атрибут. Смысл тот же, что при дублировании (атрибуты отдельно, фильтр отдельно), но таких групп надо 2-3 (из 20 в среднем атрибутов на каждый товар), правильно? То есть 2-3 лишних атрибута для служебных целей. А остальные можно просто галочками включать или выключать для участия в работе фильтра. Вероятность ошибок - гораздо ниже, чем если всё то же самое мы банально ВЫНУЖДЕНЫ дублировать. Один раз в атрибутах, другой - в значениях фильтра. Об этом же и речь. Да, естественно - желательно иметь возможность указывать, какие атрибуты и опции участвуют в работе фильтра и навигации. Например, это "группировочный" с диапазонами - есть в фильтре, а пара атрибутов с точными значениями мощности (номинальная и максимальная) - не участвуют. (Не знаю, есть ли это в том фильтре, который на ваших сайтах используется.) Но дублировать?... Прелести подхода я и после этих примеров ещё не понял, скорее убедился в обратном. Или не туда смотрел и не всё увидел? ну да, тут напрашивается полузнок с шагом .5, но включать в выборку фильтра значения которого там не должно быть это криво. Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 До атрибутов я еще не добрался (первая попытка показала ухудшение результатов, но возможно виной тому мои кривые руки), но вот по исправлению начала самого первого запроса $query = $this->db->query("SELECT DISTINCT *, p.rating, pd.name AS name, p.image, m.name AS manufacturer, таким образом $query = $this->db->query("SELECT DISTINCT pd.name AS name, p.image, m.name AS manufacturer, ничего хорошего не дало - если убрать *, сыпятся нотисы: Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: image in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 184Notice: Undefined index: tax_class_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 191Notice: Undefined index: special in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 196Notice: Undefined index: special in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 203Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 215Notice: Undefined index: name in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 217Notice: Undefined index: model in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 218Notice: Undefined index: stock_status_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 219Notice: Undefined index: date_available in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 220Notice: Undefined index: sku in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 221Notice: Undefined index: upc in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 222Notice: Undefined index: quantity in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 226Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 232 Вы проверяли это у себя? Мне кажется, нужно сделать так (по крайней мере, у меня так работает): $query = $this->db->query("SELECT DISTINCT p.product_id, p.price, p.tax_class_id, p.model, p.sku, p.quantity, p.stock_status_id, p.date_available, p.upc, pd.name AS name, p.image, m.name AS manufacturer, * нужно не убирать, а заменить на соответвующие поля из таблицы productнапример p.image, p.price, p.tax_class_id, и тд Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 * нужно не убирать, а заменить на соответвующие поля из таблицы product например p.image, p.price, p.tax_class_id, и тд Да опять экономия на спичках... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Да опять экономия на спичках... да нет, как раз тут не спички, если у вас сто товаров тогда спички, а если 100+тыс тогда далеко не спички. Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 15 березня 2013 Автор Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет. У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 rb2 если тема интересна милости прошу в личку, иначе тема по оптимизации опенкарт превратится в тему как выбрать генератор и на что стоит обратить свое внимание :-) Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Да опять экономия на спичках... Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Так я про фильтр ни слова не говорил - я его отключал, когда проверял изменения. В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) О чем в моем сообщении и шла речь! Только я вместо * подставил все нужные поля конкретно из моего случая. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... А Вы тестируете на одного пользовтаеля? То есть запрос одной страницы в одной сессии? А если на 30 - 50 сессий, результат будет такой же? Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Ну сами то подумайте :) да еще и кеш никто не отменял (напоминаю) А вот про хипы... myisam Showing rows 0 - 29 ( 108,408 total, Query took 0.0136 sec) MEMORY Showing rows 0 - 29 ( 108,408 total, Query took 0.0003 sec) Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Дык хай-лоад или 120к+ товаров? Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... P.S. Про размер кук особливо порадовало :) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Yesvik показывал, как с этим можно бороться. Суть в том, чтобы вложенным запросом сначала выбрать ID нужной сотни товаров, а только потом навешивать на них все JOIN-ы. Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Дык хай-лоад или 120к+ товаров? Одно другому не мешает. В чём вопрос-то? По сути. Понимаю ли я разницу? Понимаю. Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... Что-то Вы издалека начали. Давайте сэкономим друг другу время, а? У меня член 25 см. P.S. Про размер кук особливо порадовало :) Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Вот к стате хороший пример при выборе 1000 товаров - у человека ответы в кеш скорее всего не влезали или кей буфер переполнялся просто... над бы это дело как нить сэмитировать... ну предлагать поднять лимит на один запрос в кеше я думаю уже не надо... :) Просто где она там выборка с ответом включащих описание товара и еще каких полей которые не индексированы в 100+ позиций найти не могу... а то бы бенчнул. Серчь не предлагать он тупой это и без того понятно... Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Статья порадовала... тут хоть понятно почему это происходит :) Только это было уже можно сказать в прошлом веке... они бы еще ютьюб тогда потестили в 720р Table 1. Response times for various cookie sizes Cookie Size Median Response Time (Delta) 0 bytes 78 ms (0 ms) 500 bytes 79 ms (+1 ms) 1000 bytes 94 ms (+16 ms) 1500 bytes 109 ms (+31 ms) 2000 bytes 125 ms (+47 ms) 2500 bytes 141 ms (+63 ms) 3000 bytes 156 ms (+78 ms) Note: Times are for page loads on DSL (~800 kbps). Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... vikingshop Опубліковано: 27 березня 2013 Share Опубліковано: 27 березня 2013 Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Иммено так и вот сегодня поймал то о чем вы говорили, а иммено увидел converting HEAP to MyISAM... все дело в том что сначала действительно все выбирается во временную таблицу в память и если ее не хватает то все пишется на диск и это просто убивает производительность. А при select * выбераются туда все поля... решается вопрос повышением хипа и верменной таблицы... т.ч. совет вашему клиенту посмотреть размер таблиц которые в выборке и сравнить их с этими параметрами, т.к. думаю что он может всеравно встать на теже грабли что и с селект * только чуть позже. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... esess74 Опубліковано: 29 квітня 2013 Share Опубліковано: 29 квітня 2013 Hi! Izvinite za shrift... russkogo netu :) Nachnem s togo chto s IT osobo ne druzzu :) Problema u menja takaja.... Opencart dvizzok - bolee 100 000 tovarov, v buduschem okolo 500 000... VPS Hosting data: 70GB Hard Disk 3072MB/6144MB RAM 7000GB Bandwidth Saijt tormozit - normaljno otkrivaetsa toljko home stranica... Sokratil kategorii tovarov do minimuma (4-8)....Brand List to Product page - inogda 30 sec... Admin Product page load time - 1 min, no chashche vsego 504 Gateway Time-out Search - uzzasno medlenno, ili 504 Gateway Time-out admin/php.ini magic_quotes_gpc = Off;register_globals = Off;default_charset = UTF-8;memory_limit = 2048M;max_execution_time = 180000;upload_max_filesize = 9999M;safe_mode = Off;mysql.connect_timeout = 200;session.use_cookies = On;session.use_trans_sid = Off;session.gc_maxlifetime = 12000000;allow_url_fopen = on; Vozmozzno li nastroitj, za razumnuju cenu, chtobi vsje rabotalo, kak nado? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... RGB Опубліковано: 13 травня 2013 Share Опубліковано: 13 травня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет.У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Вот и до меня наконец то дошло, что сортировка вообще не работает при оптимизации (это я обновил свою 1.5.2.1 и заново пытался ее ускорить) :-) filterpro то использует свою сортировку, вот и не было видно ошибок, а сейчас стало сразу понятно + у вас на демке даже все эти ошибки видны (несмотря на отсутствие производителей или акций, можно открыть поиск и попытаться отсортировать выборку, например, по цене) Надіслати Поділитися на інших сайтах More sharing options... delovoy Опубліковано: 14 травня 2013 Share Опубліковано: 14 травня 2013 Параметры VPS: 12 ядер; 1ГБ оперативы, загрузить ее по полной так и не получилось, максимум 290МБ. 12 ядер? :ugeek: Это где такие ВПС? А частота какая гарантированная? Что за тип виртуализации? Просто интересно... У других ВДС с 3072MB/6144MB RAM Жесть, и где такая халява блин? 1 Надіслати Поділитися на інших сайтах More sharing options... 5 weeks later... ingenerks Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ним скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузить сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Надіслати Поділитися на інших сайтах More sharing options... charlito Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ни-кэгм скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузи-кэшть сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Кэш-кэш-кэш... Кэш - НЕ панацея. Тоже пробовал его нормальный кешер! Надіслати Поділитися на інших сайтах More sharing options... 8 months later... siniy Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Кэш-кэш-кэш... Кэш - НЕ панацея. может и не панацея... предложите свое решение? у вас есть метод решения скорости работы opencart на 100-150К товаров путем оптимизации именно движка, запросов и так далее а не оптимизации сервера... так как я например на шаред сижу... и там ничего не наоптимизируешь... есть решения или нет? Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 5 з 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 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Во, и как раз то, что называется "гостевой эффект" :) Тыкаю наугад и выбираю в фильтре: Категория: Электрогенераторы Тип генератора: Бензиновые Мощность кВт: 6 - 7 кВт Количество фаз: 3 фазы Метод запуска: Автоматический (АВР) Остается 5 товаров. Нажимаю на первый - и вижу мощность 7.5 кВт. Какая замечательная иллюстрация. Это то, что называется отсутствием нормализации и вредом дублирования. В общем, идея, как я понял, именно та, которую я называл. В атрибутах есть мощности (5.5, 6.5, ... кВт), а в фильтре для уменьшения вариантов они включаются в одну из групп (5-7 кВт и т.д.) Но я до сих пор не понимаю зачем так много дублировать и вносить ошибки, если проще добавить ещё один "группировочный" атрибут. Смысл тот же, что при дублировании (атрибуты отдельно, фильтр отдельно), но таких групп надо 2-3 (из 20 в среднем атрибутов на каждый товар), правильно? То есть 2-3 лишних атрибута для служебных целей. А остальные можно просто галочками включать или выключать для участия в работе фильтра. Вероятность ошибок - гораздо ниже, чем если всё то же самое мы банально ВЫНУЖДЕНЫ дублировать. Один раз в атрибутах, другой - в значениях фильтра. Об этом же и речь. Да, естественно - желательно иметь возможность указывать, какие атрибуты и опции участвуют в работе фильтра и навигации. Например, это "группировочный" с диапазонами - есть в фильтре, а пара атрибутов с точными значениями мощности (номинальная и максимальная) - не участвуют. (Не знаю, есть ли это в том фильтре, который на ваших сайтах используется.) Но дублировать?... Прелести подхода я и после этих примеров ещё не понял, скорее убедился в обратном. Или не туда смотрел и не всё увидел? ну да, тут напрашивается полузнок с шагом .5, но включать в выборку фильтра значения которого там не должно быть это криво. Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 До атрибутов я еще не добрался (первая попытка показала ухудшение результатов, но возможно виной тому мои кривые руки), но вот по исправлению начала самого первого запроса $query = $this->db->query("SELECT DISTINCT *, p.rating, pd.name AS name, p.image, m.name AS manufacturer, таким образом $query = $this->db->query("SELECT DISTINCT pd.name AS name, p.image, m.name AS manufacturer, ничего хорошего не дало - если убрать *, сыпятся нотисы: Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: image in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 184Notice: Undefined index: tax_class_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 191Notice: Undefined index: special in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 196Notice: Undefined index: special in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 203Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 215Notice: Undefined index: name in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 217Notice: Undefined index: model in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 218Notice: Undefined index: stock_status_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 219Notice: Undefined index: date_available in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 220Notice: Undefined index: sku in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 221Notice: Undefined index: upc in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 222Notice: Undefined index: quantity in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 226Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 232 Вы проверяли это у себя? Мне кажется, нужно сделать так (по крайней мере, у меня так работает): $query = $this->db->query("SELECT DISTINCT p.product_id, p.price, p.tax_class_id, p.model, p.sku, p.quantity, p.stock_status_id, p.date_available, p.upc, pd.name AS name, p.image, m.name AS manufacturer, * нужно не убирать, а заменить на соответвующие поля из таблицы productнапример p.image, p.price, p.tax_class_id, и тд Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 * нужно не убирать, а заменить на соответвующие поля из таблицы product например p.image, p.price, p.tax_class_id, и тд Да опять экономия на спичках... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Да опять экономия на спичках... да нет, как раз тут не спички, если у вас сто товаров тогда спички, а если 100+тыс тогда далеко не спички. Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 15 березня 2013 Автор Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет. У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 rb2 если тема интересна милости прошу в личку, иначе тема по оптимизации опенкарт превратится в тему как выбрать генератор и на что стоит обратить свое внимание :-) Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Да опять экономия на спичках... Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Так я про фильтр ни слова не говорил - я его отключал, когда проверял изменения. В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) О чем в моем сообщении и шла речь! Только я вместо * подставил все нужные поля конкретно из моего случая. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... А Вы тестируете на одного пользовтаеля? То есть запрос одной страницы в одной сессии? А если на 30 - 50 сессий, результат будет такой же? Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Ну сами то подумайте :) да еще и кеш никто не отменял (напоминаю) А вот про хипы... myisam Showing rows 0 - 29 ( 108,408 total, Query took 0.0136 sec) MEMORY Showing rows 0 - 29 ( 108,408 total, Query took 0.0003 sec) Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Дык хай-лоад или 120к+ товаров? Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... P.S. Про размер кук особливо порадовало :) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Yesvik показывал, как с этим можно бороться. Суть в том, чтобы вложенным запросом сначала выбрать ID нужной сотни товаров, а только потом навешивать на них все JOIN-ы. Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Дык хай-лоад или 120к+ товаров? Одно другому не мешает. В чём вопрос-то? По сути. Понимаю ли я разницу? Понимаю. Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... Что-то Вы издалека начали. Давайте сэкономим друг другу время, а? У меня член 25 см. P.S. Про размер кук особливо порадовало :) Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Вот к стате хороший пример при выборе 1000 товаров - у человека ответы в кеш скорее всего не влезали или кей буфер переполнялся просто... над бы это дело как нить сэмитировать... ну предлагать поднять лимит на один запрос в кеше я думаю уже не надо... :) Просто где она там выборка с ответом включащих описание товара и еще каких полей которые не индексированы в 100+ позиций найти не могу... а то бы бенчнул. Серчь не предлагать он тупой это и без того понятно... Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Статья порадовала... тут хоть понятно почему это происходит :) Только это было уже можно сказать в прошлом веке... они бы еще ютьюб тогда потестили в 720р Table 1. Response times for various cookie sizes Cookie Size Median Response Time (Delta) 0 bytes 78 ms (0 ms) 500 bytes 79 ms (+1 ms) 1000 bytes 94 ms (+16 ms) 1500 bytes 109 ms (+31 ms) 2000 bytes 125 ms (+47 ms) 2500 bytes 141 ms (+63 ms) 3000 bytes 156 ms (+78 ms) Note: Times are for page loads on DSL (~800 kbps). Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... vikingshop Опубліковано: 27 березня 2013 Share Опубліковано: 27 березня 2013 Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Иммено так и вот сегодня поймал то о чем вы говорили, а иммено увидел converting HEAP to MyISAM... все дело в том что сначала действительно все выбирается во временную таблицу в память и если ее не хватает то все пишется на диск и это просто убивает производительность. А при select * выбераются туда все поля... решается вопрос повышением хипа и верменной таблицы... т.ч. совет вашему клиенту посмотреть размер таблиц которые в выборке и сравнить их с этими параметрами, т.к. думаю что он может всеравно встать на теже грабли что и с селект * только чуть позже. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... esess74 Опубліковано: 29 квітня 2013 Share Опубліковано: 29 квітня 2013 Hi! Izvinite za shrift... russkogo netu :) Nachnem s togo chto s IT osobo ne druzzu :) Problema u menja takaja.... Opencart dvizzok - bolee 100 000 tovarov, v buduschem okolo 500 000... VPS Hosting data: 70GB Hard Disk 3072MB/6144MB RAM 7000GB Bandwidth Saijt tormozit - normaljno otkrivaetsa toljko home stranica... Sokratil kategorii tovarov do minimuma (4-8)....Brand List to Product page - inogda 30 sec... Admin Product page load time - 1 min, no chashche vsego 504 Gateway Time-out Search - uzzasno medlenno, ili 504 Gateway Time-out admin/php.ini magic_quotes_gpc = Off;register_globals = Off;default_charset = UTF-8;memory_limit = 2048M;max_execution_time = 180000;upload_max_filesize = 9999M;safe_mode = Off;mysql.connect_timeout = 200;session.use_cookies = On;session.use_trans_sid = Off;session.gc_maxlifetime = 12000000;allow_url_fopen = on; Vozmozzno li nastroitj, za razumnuju cenu, chtobi vsje rabotalo, kak nado? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... RGB Опубліковано: 13 травня 2013 Share Опубліковано: 13 травня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет.У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Вот и до меня наконец то дошло, что сортировка вообще не работает при оптимизации (это я обновил свою 1.5.2.1 и заново пытался ее ускорить) :-) filterpro то использует свою сортировку, вот и не было видно ошибок, а сейчас стало сразу понятно + у вас на демке даже все эти ошибки видны (несмотря на отсутствие производителей или акций, можно открыть поиск и попытаться отсортировать выборку, например, по цене) Надіслати Поділитися на інших сайтах More sharing options... delovoy Опубліковано: 14 травня 2013 Share Опубліковано: 14 травня 2013 Параметры VPS: 12 ядер; 1ГБ оперативы, загрузить ее по полной так и не получилось, максимум 290МБ. 12 ядер? :ugeek: Это где такие ВПС? А частота какая гарантированная? Что за тип виртуализации? Просто интересно... У других ВДС с 3072MB/6144MB RAM Жесть, и где такая халява блин? 1 Надіслати Поділитися на інших сайтах More sharing options... 5 weeks later... ingenerks Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ним скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузить сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Надіслати Поділитися на інших сайтах More sharing options... charlito Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ни-кэгм скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузи-кэшть сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Кэш-кэш-кэш... Кэш - НЕ панацея. Тоже пробовал его нормальный кешер! Надіслати Поділитися на інших сайтах More sharing options... 8 months later... siniy Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Кэш-кэш-кэш... Кэш - НЕ панацея. может и не панацея... предложите свое решение? у вас есть метод решения скорости работы opencart на 100-150К товаров путем оптимизации именно движка, запросов и так далее а не оптимизации сервера... так как я например на шаред сижу... и там ничего не наоптимизируешь... есть решения или нет? Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 5 з 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 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 До атрибутов я еще не добрался (первая попытка показала ухудшение результатов, но возможно виной тому мои кривые руки), но вот по исправлению начала самого первого запроса $query = $this->db->query("SELECT DISTINCT *, p.rating, pd.name AS name, p.image, m.name AS manufacturer, таким образом $query = $this->db->query("SELECT DISTINCT pd.name AS name, p.image, m.name AS manufacturer, ничего хорошего не дало - если убрать *, сыпятся нотисы: Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Warning: array_merge() [function.array-merge]: Argument #2 is not an array in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 50Notice: Undefined index: rating in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 52Notice: Undefined index: reviews in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 53Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\model\catalog\product.php on line 54Notice: Undefined index: image in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 184Notice: Undefined index: tax_class_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 191Notice: Undefined index: special in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 196Notice: Undefined index: special in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 203Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 215Notice: Undefined index: name in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 217Notice: Undefined index: model in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 218Notice: Undefined index: stock_status_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 219Notice: Undefined index: date_available in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 220Notice: Undefined index: sku in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 221Notice: Undefined index: upc in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 222Notice: Undefined index: quantity in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 226Notice: Undefined index: product_id in Z:\home\localhost\ocstore1521\catalog\controller\product\category.php on line 232 Вы проверяли это у себя? Мне кажется, нужно сделать так (по крайней мере, у меня так работает): $query = $this->db->query("SELECT DISTINCT p.product_id, p.price, p.tax_class_id, p.model, p.sku, p.quantity, p.stock_status_id, p.date_available, p.upc, pd.name AS name, p.image, m.name AS manufacturer, * нужно не убирать, а заменить на соответвующие поля из таблицы productнапример p.image, p.price, p.tax_class_id, и тд Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 * нужно не убирать, а заменить на соответвующие поля из таблицы product например p.image, p.price, p.tax_class_id, и тд Да опять экономия на спичках... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Да опять экономия на спичках... да нет, как раз тут не спички, если у вас сто товаров тогда спички, а если 100+тыс тогда далеко не спички. Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 15 березня 2013 Автор Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет. У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 rb2 если тема интересна милости прошу в личку, иначе тема по оптимизации опенкарт превратится в тему как выбрать генератор и на что стоит обратить свое внимание :-) Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Да опять экономия на спичках... Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Так я про фильтр ни слова не говорил - я его отключал, когда проверял изменения. В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) О чем в моем сообщении и шла речь! Только я вместо * подставил все нужные поля конкретно из моего случая. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... А Вы тестируете на одного пользовтаеля? То есть запрос одной страницы в одной сессии? А если на 30 - 50 сессий, результат будет такой же? Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Ну сами то подумайте :) да еще и кеш никто не отменял (напоминаю) А вот про хипы... myisam Showing rows 0 - 29 ( 108,408 total, Query took 0.0136 sec) MEMORY Showing rows 0 - 29 ( 108,408 total, Query took 0.0003 sec) Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Дык хай-лоад или 120к+ товаров? Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... P.S. Про размер кук особливо порадовало :) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Yesvik показывал, как с этим можно бороться. Суть в том, чтобы вложенным запросом сначала выбрать ID нужной сотни товаров, а только потом навешивать на них все JOIN-ы. Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Дык хай-лоад или 120к+ товаров? Одно другому не мешает. В чём вопрос-то? По сути. Понимаю ли я разницу? Понимаю. Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... Что-то Вы издалека начали. Давайте сэкономим друг другу время, а? У меня член 25 см. P.S. Про размер кук особливо порадовало :) Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Вот к стате хороший пример при выборе 1000 товаров - у человека ответы в кеш скорее всего не влезали или кей буфер переполнялся просто... над бы это дело как нить сэмитировать... ну предлагать поднять лимит на один запрос в кеше я думаю уже не надо... :) Просто где она там выборка с ответом включащих описание товара и еще каких полей которые не индексированы в 100+ позиций найти не могу... а то бы бенчнул. Серчь не предлагать он тупой это и без того понятно... Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Статья порадовала... тут хоть понятно почему это происходит :) Только это было уже можно сказать в прошлом веке... они бы еще ютьюб тогда потестили в 720р Table 1. Response times for various cookie sizes Cookie Size Median Response Time (Delta) 0 bytes 78 ms (0 ms) 500 bytes 79 ms (+1 ms) 1000 bytes 94 ms (+16 ms) 1500 bytes 109 ms (+31 ms) 2000 bytes 125 ms (+47 ms) 2500 bytes 141 ms (+63 ms) 3000 bytes 156 ms (+78 ms) Note: Times are for page loads on DSL (~800 kbps). Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... vikingshop Опубліковано: 27 березня 2013 Share Опубліковано: 27 березня 2013 Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Иммено так и вот сегодня поймал то о чем вы говорили, а иммено увидел converting HEAP to MyISAM... все дело в том что сначала действительно все выбирается во временную таблицу в память и если ее не хватает то все пишется на диск и это просто убивает производительность. А при select * выбераются туда все поля... решается вопрос повышением хипа и верменной таблицы... т.ч. совет вашему клиенту посмотреть размер таблиц которые в выборке и сравнить их с этими параметрами, т.к. думаю что он может всеравно встать на теже грабли что и с селект * только чуть позже. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... esess74 Опубліковано: 29 квітня 2013 Share Опубліковано: 29 квітня 2013 Hi! Izvinite za shrift... russkogo netu :) Nachnem s togo chto s IT osobo ne druzzu :) Problema u menja takaja.... Opencart dvizzok - bolee 100 000 tovarov, v buduschem okolo 500 000... VPS Hosting data: 70GB Hard Disk 3072MB/6144MB RAM 7000GB Bandwidth Saijt tormozit - normaljno otkrivaetsa toljko home stranica... Sokratil kategorii tovarov do minimuma (4-8)....Brand List to Product page - inogda 30 sec... Admin Product page load time - 1 min, no chashche vsego 504 Gateway Time-out Search - uzzasno medlenno, ili 504 Gateway Time-out admin/php.ini magic_quotes_gpc = Off;register_globals = Off;default_charset = UTF-8;memory_limit = 2048M;max_execution_time = 180000;upload_max_filesize = 9999M;safe_mode = Off;mysql.connect_timeout = 200;session.use_cookies = On;session.use_trans_sid = Off;session.gc_maxlifetime = 12000000;allow_url_fopen = on; Vozmozzno li nastroitj, za razumnuju cenu, chtobi vsje rabotalo, kak nado? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... RGB Опубліковано: 13 травня 2013 Share Опубліковано: 13 травня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет.У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Вот и до меня наконец то дошло, что сортировка вообще не работает при оптимизации (это я обновил свою 1.5.2.1 и заново пытался ее ускорить) :-) filterpro то использует свою сортировку, вот и не было видно ошибок, а сейчас стало сразу понятно + у вас на демке даже все эти ошибки видны (несмотря на отсутствие производителей или акций, можно открыть поиск и попытаться отсортировать выборку, например, по цене) Надіслати Поділитися на інших сайтах More sharing options... delovoy Опубліковано: 14 травня 2013 Share Опубліковано: 14 травня 2013 Параметры VPS: 12 ядер; 1ГБ оперативы, загрузить ее по полной так и не получилось, максимум 290МБ. 12 ядер? :ugeek: Это где такие ВПС? А частота какая гарантированная? Что за тип виртуализации? Просто интересно... У других ВДС с 3072MB/6144MB RAM Жесть, и где такая халява блин? 1 Надіслати Поділитися на інших сайтах More sharing options... 5 weeks later... ingenerks Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ним скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузить сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Надіслати Поділитися на інших сайтах More sharing options... charlito Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ни-кэгм скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузи-кэшть сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Кэш-кэш-кэш... Кэш - НЕ панацея. Тоже пробовал его нормальный кешер! Надіслати Поділитися на інших сайтах More sharing options... 8 months later... siniy Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Кэш-кэш-кэш... Кэш - НЕ панацея. может и не панацея... предложите свое решение? у вас есть метод решения скорости работы opencart на 100-150К товаров путем оптимизации именно движка, запросов и так далее а не оптимизации сервера... так как я например на шаред сижу... и там ничего не наоптимизируешь... есть решения или нет? Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 5 з 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 * нужно не убирать, а заменить на соответвующие поля из таблицы product например p.image, p.price, p.tax_class_id, и тд Да опять экономия на спичках... Надіслати Поділитися на інших сайтах More sharing options...
costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Да опять экономия на спичках... да нет, как раз тут не спички, если у вас сто товаров тогда спички, а если 100+тыс тогда далеко не спички. Надіслати Поділитися на інших сайтах More sharing options... pashast Опубліковано: 15 березня 2013 Автор Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет. У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 rb2 если тема интересна милости прошу в личку, иначе тема по оптимизации опенкарт превратится в тему как выбрать генератор и на что стоит обратить свое внимание :-) Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Да опять экономия на спичках... Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Так я про фильтр ни слова не говорил - я его отключал, когда проверял изменения. В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) О чем в моем сообщении и шла речь! Только я вместо * подставил все нужные поля конкретно из моего случая. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... А Вы тестируете на одного пользовтаеля? То есть запрос одной страницы в одной сессии? А если на 30 - 50 сессий, результат будет такой же? Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Ну сами то подумайте :) да еще и кеш никто не отменял (напоминаю) А вот про хипы... myisam Showing rows 0 - 29 ( 108,408 total, Query took 0.0136 sec) MEMORY Showing rows 0 - 29 ( 108,408 total, Query took 0.0003 sec) Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Дык хай-лоад или 120к+ товаров? Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... P.S. Про размер кук особливо порадовало :) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Yesvik показывал, как с этим можно бороться. Суть в том, чтобы вложенным запросом сначала выбрать ID нужной сотни товаров, а только потом навешивать на них все JOIN-ы. Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Дык хай-лоад или 120к+ товаров? Одно другому не мешает. В чём вопрос-то? По сути. Понимаю ли я разницу? Понимаю. Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... Что-то Вы издалека начали. Давайте сэкономим друг другу время, а? У меня член 25 см. P.S. Про размер кук особливо порадовало :) Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Вот к стате хороший пример при выборе 1000 товаров - у человека ответы в кеш скорее всего не влезали или кей буфер переполнялся просто... над бы это дело как нить сэмитировать... ну предлагать поднять лимит на один запрос в кеше я думаю уже не надо... :) Просто где она там выборка с ответом включащих описание товара и еще каких полей которые не индексированы в 100+ позиций найти не могу... а то бы бенчнул. Серчь не предлагать он тупой это и без того понятно... Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Статья порадовала... тут хоть понятно почему это происходит :) Только это было уже можно сказать в прошлом веке... они бы еще ютьюб тогда потестили в 720р Table 1. Response times for various cookie sizes Cookie Size Median Response Time (Delta) 0 bytes 78 ms (0 ms) 500 bytes 79 ms (+1 ms) 1000 bytes 94 ms (+16 ms) 1500 bytes 109 ms (+31 ms) 2000 bytes 125 ms (+47 ms) 2500 bytes 141 ms (+63 ms) 3000 bytes 156 ms (+78 ms) Note: Times are for page loads on DSL (~800 kbps). Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... vikingshop Опубліковано: 27 березня 2013 Share Опубліковано: 27 березня 2013 Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Иммено так и вот сегодня поймал то о чем вы говорили, а иммено увидел converting HEAP to MyISAM... все дело в том что сначала действительно все выбирается во временную таблицу в память и если ее не хватает то все пишется на диск и это просто убивает производительность. А при select * выбераются туда все поля... решается вопрос повышением хипа и верменной таблицы... т.ч. совет вашему клиенту посмотреть размер таблиц которые в выборке и сравнить их с этими параметрами, т.к. думаю что он может всеравно встать на теже грабли что и с селект * только чуть позже. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... esess74 Опубліковано: 29 квітня 2013 Share Опубліковано: 29 квітня 2013 Hi! Izvinite za shrift... russkogo netu :) Nachnem s togo chto s IT osobo ne druzzu :) Problema u menja takaja.... Opencart dvizzok - bolee 100 000 tovarov, v buduschem okolo 500 000... VPS Hosting data: 70GB Hard Disk 3072MB/6144MB RAM 7000GB Bandwidth Saijt tormozit - normaljno otkrivaetsa toljko home stranica... Sokratil kategorii tovarov do minimuma (4-8)....Brand List to Product page - inogda 30 sec... Admin Product page load time - 1 min, no chashche vsego 504 Gateway Time-out Search - uzzasno medlenno, ili 504 Gateway Time-out admin/php.ini magic_quotes_gpc = Off;register_globals = Off;default_charset = UTF-8;memory_limit = 2048M;max_execution_time = 180000;upload_max_filesize = 9999M;safe_mode = Off;mysql.connect_timeout = 200;session.use_cookies = On;session.use_trans_sid = Off;session.gc_maxlifetime = 12000000;allow_url_fopen = on; Vozmozzno li nastroitj, za razumnuju cenu, chtobi vsje rabotalo, kak nado? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... RGB Опубліковано: 13 травня 2013 Share Опубліковано: 13 травня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет.У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Вот и до меня наконец то дошло, что сортировка вообще не работает при оптимизации (это я обновил свою 1.5.2.1 и заново пытался ее ускорить) :-) filterpro то использует свою сортировку, вот и не было видно ошибок, а сейчас стало сразу понятно + у вас на демке даже все эти ошибки видны (несмотря на отсутствие производителей или акций, можно открыть поиск и попытаться отсортировать выборку, например, по цене) Надіслати Поділитися на інших сайтах More sharing options... delovoy Опубліковано: 14 травня 2013 Share Опубліковано: 14 травня 2013 Параметры VPS: 12 ядер; 1ГБ оперативы, загрузить ее по полной так и не получилось, максимум 290МБ. 12 ядер? :ugeek: Это где такие ВПС? А частота какая гарантированная? Что за тип виртуализации? Просто интересно... У других ВДС с 3072MB/6144MB RAM Жесть, и где такая халява блин? 1 Надіслати Поділитися на інших сайтах More sharing options... 5 weeks later... ingenerks Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ним скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузить сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Надіслати Поділитися на інших сайтах More sharing options... charlito Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ни-кэгм скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузи-кэшть сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Кэш-кэш-кэш... Кэш - НЕ панацея. Тоже пробовал его нормальный кешер! Надіслати Поділитися на інших сайтах More sharing options... 8 months later... siniy Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Кэш-кэш-кэш... Кэш - НЕ панацея. может и не панацея... предложите свое решение? у вас есть метод решения скорости работы opencart на 100-150К товаров путем оптимизации именно движка, запросов и так далее а не оптимизации сервера... так как я например на шаред сижу... и там ничего не наоптимизируешь... есть решения или нет? Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 5 з 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 Опубліковано: 15 березня 2013 Автор Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет. У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 rb2 если тема интересна милости прошу в личку, иначе тема по оптимизации опенкарт превратится в тему как выбрать генератор и на что стоит обратить свое внимание :-) Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Да опять экономия на спичках... Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Надіслати Поділитися на інших сайтах More sharing options... RGB Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Так я про фильтр ни слова не говорил - я его отключал, когда проверял изменения. В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) О чем в моем сообщении и шла речь! Только я вместо * подставил все нужные поля конкретно из моего случая. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... А Вы тестируете на одного пользовтаеля? То есть запрос одной страницы в одной сессии? А если на 30 - 50 сессий, результат будет такой же? Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Ну сами то подумайте :) да еще и кеш никто не отменял (напоминаю) А вот про хипы... myisam Showing rows 0 - 29 ( 108,408 total, Query took 0.0136 sec) MEMORY Showing rows 0 - 29 ( 108,408 total, Query took 0.0003 sec) Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Дык хай-лоад или 120к+ товаров? Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... P.S. Про размер кук особливо порадовало :) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Yesvik показывал, как с этим можно бороться. Суть в том, чтобы вложенным запросом сначала выбрать ID нужной сотни товаров, а только потом навешивать на них все JOIN-ы. Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Дык хай-лоад или 120к+ товаров? Одно другому не мешает. В чём вопрос-то? По сути. Понимаю ли я разницу? Понимаю. Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... Что-то Вы издалека начали. Давайте сэкономим друг другу время, а? У меня член 25 см. P.S. Про размер кук особливо порадовало :) Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Вот к стате хороший пример при выборе 1000 товаров - у человека ответы в кеш скорее всего не влезали или кей буфер переполнялся просто... над бы это дело как нить сэмитировать... ну предлагать поднять лимит на один запрос в кеше я думаю уже не надо... :) Просто где она там выборка с ответом включащих описание товара и еще каких полей которые не индексированы в 100+ позиций найти не могу... а то бы бенчнул. Серчь не предлагать он тупой это и без того понятно... Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Статья порадовала... тут хоть понятно почему это происходит :) Только это было уже можно сказать в прошлом веке... они бы еще ютьюб тогда потестили в 720р Table 1. Response times for various cookie sizes Cookie Size Median Response Time (Delta) 0 bytes 78 ms (0 ms) 500 bytes 79 ms (+1 ms) 1000 bytes 94 ms (+16 ms) 1500 bytes 109 ms (+31 ms) 2000 bytes 125 ms (+47 ms) 2500 bytes 141 ms (+63 ms) 3000 bytes 156 ms (+78 ms) Note: Times are for page loads on DSL (~800 kbps). Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... vikingshop Опубліковано: 27 березня 2013 Share Опубліковано: 27 березня 2013 Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Иммено так и вот сегодня поймал то о чем вы говорили, а иммено увидел converting HEAP to MyISAM... все дело в том что сначала действительно все выбирается во временную таблицу в память и если ее не хватает то все пишется на диск и это просто убивает производительность. А при select * выбераются туда все поля... решается вопрос повышением хипа и верменной таблицы... т.ч. совет вашему клиенту посмотреть размер таблиц которые в выборке и сравнить их с этими параметрами, т.к. думаю что он может всеравно встать на теже грабли что и с селект * только чуть позже. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... esess74 Опубліковано: 29 квітня 2013 Share Опубліковано: 29 квітня 2013 Hi! Izvinite za shrift... russkogo netu :) Nachnem s togo chto s IT osobo ne druzzu :) Problema u menja takaja.... Opencart dvizzok - bolee 100 000 tovarov, v buduschem okolo 500 000... VPS Hosting data: 70GB Hard Disk 3072MB/6144MB RAM 7000GB Bandwidth Saijt tormozit - normaljno otkrivaetsa toljko home stranica... Sokratil kategorii tovarov do minimuma (4-8)....Brand List to Product page - inogda 30 sec... Admin Product page load time - 1 min, no chashche vsego 504 Gateway Time-out Search - uzzasno medlenno, ili 504 Gateway Time-out admin/php.ini magic_quotes_gpc = Off;register_globals = Off;default_charset = UTF-8;memory_limit = 2048M;max_execution_time = 180000;upload_max_filesize = 9999M;safe_mode = Off;mysql.connect_timeout = 200;session.use_cookies = On;session.use_trans_sid = Off;session.gc_maxlifetime = 12000000;allow_url_fopen = on; Vozmozzno li nastroitj, za razumnuju cenu, chtobi vsje rabotalo, kak nado? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... RGB Опубліковано: 13 травня 2013 Share Опубліковано: 13 травня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет.У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Вот и до меня наконец то дошло, что сортировка вообще не работает при оптимизации (это я обновил свою 1.5.2.1 и заново пытался ее ускорить) :-) filterpro то использует свою сортировку, вот и не было видно ошибок, а сейчас стало сразу понятно + у вас на демке даже все эти ошибки видны (несмотря на отсутствие производителей или акций, можно открыть поиск и попытаться отсортировать выборку, например, по цене) Надіслати Поділитися на інших сайтах More sharing options... delovoy Опубліковано: 14 травня 2013 Share Опубліковано: 14 травня 2013 Параметры VPS: 12 ядер; 1ГБ оперативы, загрузить ее по полной так и не получилось, максимум 290МБ. 12 ядер? :ugeek: Это где такие ВПС? А частота какая гарантированная? Что за тип виртуализации? Просто интересно... У других ВДС с 3072MB/6144MB RAM Жесть, и где такая халява блин? 1 Надіслати Поділитися на інших сайтах More sharing options... 5 weeks later... ingenerks Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ним скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузить сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Надіслати Поділитися на інших сайтах More sharing options... charlito Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ни-кэгм скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузи-кэшть сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Кэш-кэш-кэш... Кэш - НЕ панацея. Тоже пробовал его нормальный кешер! Надіслати Поділитися на інших сайтах More sharing options... 8 months later... siniy Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Кэш-кэш-кэш... Кэш - НЕ панацея. может и не панацея... предложите свое решение? у вас есть метод решения скорости работы opencart на 100-150К товаров путем оптимизации именно движка, запросов и так далее а не оптимизации сервера... так как я например на шаред сижу... и там ничего не наоптимизируешь... есть решения или нет? Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 5 з 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 rb2 если тема интересна милости прошу в личку, иначе тема по оптимизации опенкарт превратится в тему как выбрать генератор и на что стоит обратить свое внимание :-) Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Да опять экономия на спичках... Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Надіслати Поділитися на інших сайтах More sharing options...
RGB Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Так я про фильтр ни слова не говорил - я его отключал, когда проверял изменения. В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) О чем в моем сообщении и шла речь! Только я вместо * подставил все нужные поля конкретно из моего случая. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... Надіслати Поділитися на інших сайтах More sharing options... costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... А Вы тестируете на одного пользовтаеля? То есть запрос одной страницы в одной сессии? А если на 30 - 50 сессий, результат будет такой же? Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Ну сами то подумайте :) да еще и кеш никто не отменял (напоминаю) А вот про хипы... myisam Showing rows 0 - 29 ( 108,408 total, Query took 0.0136 sec) MEMORY Showing rows 0 - 29 ( 108,408 total, Query took 0.0003 sec) Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Дык хай-лоад или 120к+ товаров? Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... P.S. Про размер кук особливо порадовало :) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Yesvik показывал, как с этим можно бороться. Суть в том, чтобы вложенным запросом сначала выбрать ID нужной сотни товаров, а только потом навешивать на них все JOIN-ы. Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Дык хай-лоад или 120к+ товаров? Одно другому не мешает. В чём вопрос-то? По сути. Понимаю ли я разницу? Понимаю. Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... Что-то Вы издалека начали. Давайте сэкономим друг другу время, а? У меня член 25 см. P.S. Про размер кук особливо порадовало :) Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Вот к стате хороший пример при выборе 1000 товаров - у человека ответы в кеш скорее всего не влезали или кей буфер переполнялся просто... над бы это дело как нить сэмитировать... ну предлагать поднять лимит на один запрос в кеше я думаю уже не надо... :) Просто где она там выборка с ответом включащих описание товара и еще каких полей которые не индексированы в 100+ позиций найти не могу... а то бы бенчнул. Серчь не предлагать он тупой это и без того понятно... Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Статья порадовала... тут хоть понятно почему это происходит :) Только это было уже можно сказать в прошлом веке... они бы еще ютьюб тогда потестили в 720р Table 1. Response times for various cookie sizes Cookie Size Median Response Time (Delta) 0 bytes 78 ms (0 ms) 500 bytes 79 ms (+1 ms) 1000 bytes 94 ms (+16 ms) 1500 bytes 109 ms (+31 ms) 2000 bytes 125 ms (+47 ms) 2500 bytes 141 ms (+63 ms) 3000 bytes 156 ms (+78 ms) Note: Times are for page loads on DSL (~800 kbps). Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... vikingshop Опубліковано: 27 березня 2013 Share Опубліковано: 27 березня 2013 Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Иммено так и вот сегодня поймал то о чем вы говорили, а иммено увидел converting HEAP to MyISAM... все дело в том что сначала действительно все выбирается во временную таблицу в память и если ее не хватает то все пишется на диск и это просто убивает производительность. А при select * выбераются туда все поля... решается вопрос повышением хипа и верменной таблицы... т.ч. совет вашему клиенту посмотреть размер таблиц которые в выборке и сравнить их с этими параметрами, т.к. думаю что он может всеравно встать на теже грабли что и с селект * только чуть позже. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... esess74 Опубліковано: 29 квітня 2013 Share Опубліковано: 29 квітня 2013 Hi! Izvinite za shrift... russkogo netu :) Nachnem s togo chto s IT osobo ne druzzu :) Problema u menja takaja.... Opencart dvizzok - bolee 100 000 tovarov, v buduschem okolo 500 000... VPS Hosting data: 70GB Hard Disk 3072MB/6144MB RAM 7000GB Bandwidth Saijt tormozit - normaljno otkrivaetsa toljko home stranica... Sokratil kategorii tovarov do minimuma (4-8)....Brand List to Product page - inogda 30 sec... Admin Product page load time - 1 min, no chashche vsego 504 Gateway Time-out Search - uzzasno medlenno, ili 504 Gateway Time-out admin/php.ini magic_quotes_gpc = Off;register_globals = Off;default_charset = UTF-8;memory_limit = 2048M;max_execution_time = 180000;upload_max_filesize = 9999M;safe_mode = Off;mysql.connect_timeout = 200;session.use_cookies = On;session.use_trans_sid = Off;session.gc_maxlifetime = 12000000;allow_url_fopen = on; Vozmozzno li nastroitj, za razumnuju cenu, chtobi vsje rabotalo, kak nado? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... RGB Опубліковано: 13 травня 2013 Share Опубліковано: 13 травня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет.У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Вот и до меня наконец то дошло, что сортировка вообще не работает при оптимизации (это я обновил свою 1.5.2.1 и заново пытался ее ускорить) :-) filterpro то использует свою сортировку, вот и не было видно ошибок, а сейчас стало сразу понятно + у вас на демке даже все эти ошибки видны (несмотря на отсутствие производителей или акций, можно открыть поиск и попытаться отсортировать выборку, например, по цене) Надіслати Поділитися на інших сайтах More sharing options... delovoy Опубліковано: 14 травня 2013 Share Опубліковано: 14 травня 2013 Параметры VPS: 12 ядер; 1ГБ оперативы, загрузить ее по полной так и не получилось, максимум 290МБ. 12 ядер? :ugeek: Это где такие ВПС? А частота какая гарантированная? Что за тип виртуализации? Просто интересно... У других ВДС с 3072MB/6144MB RAM Жесть, и где такая халява блин? 1 Надіслати Поділитися на інших сайтах More sharing options... 5 weeks later... ingenerks Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ним скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузить сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Надіслати Поділитися на інших сайтах More sharing options... charlito Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ни-кэгм скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузи-кэшть сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Кэш-кэш-кэш... Кэш - НЕ панацея. Тоже пробовал его нормальный кешер! Надіслати Поділитися на інших сайтах More sharing options... 8 months later... siniy Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Кэш-кэш-кэш... Кэш - НЕ панацея. может и не панацея... предложите свое решение? у вас есть метод решения скорости работы opencart на 100-150К товаров путем оптимизации именно движка, запросов и так далее а не оптимизации сервера... так как я например на шаред сижу... и там ничего не наоптимизируешь... есть решения или нет? Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 5 з 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
vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мне интересна тема производительности фильтра в контексте сабжа (для больших магазинов, 100k+ товаров). Ха 3 раза. Это не спички, там огромнейшие объёмы набегают, если выбирать всё подряд. А ещё если джойнить это всё направо и налево.Не хватает места не то что в памяти -- временные разделы на диске заканчиваются, когда MySQL пытается временные таблицы записать. И валится с ошибкой (это раз). И о какой оптимизации тут вообще можно говорить (это два). Тут вон недавно url_alias с 256 символов до 32 кто-то сокращал - и одно это дало хороший эффект. На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... Надіслати Поділитися на інших сайтах More sharing options...
costas Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Если на то пошло хотите оптимизировться на чтении переходите на heap таблицы и регулярно их бекапте... У кого есть желание локально поэкспериментировать поменяйте тип таблицы и запустите бенчер... А Вы тестируете на одного пользовтаеля? То есть запрос одной страницы в одной сессии? А если на 30 - 50 сессий, результат будет такой же? Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Ну сами то подумайте :) да еще и кеш никто не отменял (напоминаю) А вот про хипы... myisam Showing rows 0 - 29 ( 108,408 total, Query took 0.0136 sec) MEMORY Showing rows 0 - 29 ( 108,408 total, Query took 0.0003 sec) Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Дык хай-лоад или 120к+ товаров? Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... P.S. Про размер кук особливо порадовало :) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Yesvik показывал, как с этим можно бороться. Суть в том, чтобы вложенным запросом сначала выбрать ID нужной сотни товаров, а только потом навешивать на них все JOIN-ы. Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Дык хай-лоад или 120к+ товаров? Одно другому не мешает. В чём вопрос-то? По сути. Понимаю ли я разницу? Понимаю. Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... Что-то Вы издалека начали. Давайте сэкономим друг другу время, а? У меня член 25 см. P.S. Про размер кук особливо порадовало :) Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Вот к стате хороший пример при выборе 1000 товаров - у человека ответы в кеш скорее всего не влезали или кей буфер переполнялся просто... над бы это дело как нить сэмитировать... ну предлагать поднять лимит на один запрос в кеше я думаю уже не надо... :) Просто где она там выборка с ответом включащих описание товара и еще каких полей которые не индексированы в 100+ позиций найти не могу... а то бы бенчнул. Серчь не предлагать он тупой это и без того понятно... Надіслати Поділитися на інших сайтах More sharing options... vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Статья порадовала... тут хоть понятно почему это происходит :) Только это было уже можно сказать в прошлом веке... они бы еще ютьюб тогда потестили в 720р Table 1. Response times for various cookie sizes Cookie Size Median Response Time (Delta) 0 bytes 78 ms (0 ms) 500 bytes 79 ms (+1 ms) 1000 bytes 94 ms (+16 ms) 1500 bytes 109 ms (+31 ms) 2000 bytes 125 ms (+47 ms) 2500 bytes 141 ms (+63 ms) 3000 bytes 156 ms (+78 ms) Note: Times are for page loads on DSL (~800 kbps). Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... vikingshop Опубліковано: 27 березня 2013 Share Опубліковано: 27 березня 2013 Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Иммено так и вот сегодня поймал то о чем вы говорили, а иммено увидел converting HEAP to MyISAM... все дело в том что сначала действительно все выбирается во временную таблицу в память и если ее не хватает то все пишется на диск и это просто убивает производительность. А при select * выбераются туда все поля... решается вопрос повышением хипа и верменной таблицы... т.ч. совет вашему клиенту посмотреть размер таблиц которые в выборке и сравнить их с этими параметрами, т.к. думаю что он может всеравно встать на теже грабли что и с селект * только чуть позже. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... esess74 Опубліковано: 29 квітня 2013 Share Опубліковано: 29 квітня 2013 Hi! Izvinite za shrift... russkogo netu :) Nachnem s togo chto s IT osobo ne druzzu :) Problema u menja takaja.... Opencart dvizzok - bolee 100 000 tovarov, v buduschem okolo 500 000... VPS Hosting data: 70GB Hard Disk 3072MB/6144MB RAM 7000GB Bandwidth Saijt tormozit - normaljno otkrivaetsa toljko home stranica... Sokratil kategorii tovarov do minimuma (4-8)....Brand List to Product page - inogda 30 sec... Admin Product page load time - 1 min, no chashche vsego 504 Gateway Time-out Search - uzzasno medlenno, ili 504 Gateway Time-out admin/php.ini magic_quotes_gpc = Off;register_globals = Off;default_charset = UTF-8;memory_limit = 2048M;max_execution_time = 180000;upload_max_filesize = 9999M;safe_mode = Off;mysql.connect_timeout = 200;session.use_cookies = On;session.use_trans_sid = Off;session.gc_maxlifetime = 12000000;allow_url_fopen = on; Vozmozzno li nastroitj, za razumnuju cenu, chtobi vsje rabotalo, kak nado? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... RGB Опубліковано: 13 травня 2013 Share Опубліковано: 13 травня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет.У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Вот и до меня наконец то дошло, что сортировка вообще не работает при оптимизации (это я обновил свою 1.5.2.1 и заново пытался ее ускорить) :-) filterpro то использует свою сортировку, вот и не было видно ошибок, а сейчас стало сразу понятно + у вас на демке даже все эти ошибки видны (несмотря на отсутствие производителей или акций, можно открыть поиск и попытаться отсортировать выборку, например, по цене) Надіслати Поділитися на інших сайтах More sharing options... delovoy Опубліковано: 14 травня 2013 Share Опубліковано: 14 травня 2013 Параметры VPS: 12 ядер; 1ГБ оперативы, загрузить ее по полной так и не получилось, максимум 290МБ. 12 ядер? :ugeek: Это где такие ВПС? А частота какая гарантированная? Что за тип виртуализации? Просто интересно... У других ВДС с 3072MB/6144MB RAM Жесть, и где такая халява блин? 1 Надіслати Поділитися на інших сайтах More sharing options... 5 weeks later... ingenerks Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ним скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузить сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Надіслати Поділитися на інших сайтах More sharing options... charlito Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ни-кэгм скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузи-кэшть сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Кэш-кэш-кэш... Кэш - НЕ панацея. Тоже пробовал его нормальный кешер! Надіслати Поділитися на інших сайтах More sharing options... 8 months later... siniy Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Кэш-кэш-кэш... Кэш - НЕ панацея. может и не панацея... предложите свое решение? у вас есть метод решения скорости работы opencart на 100-150К товаров путем оптимизации именно движка, запросов и так далее а не оптимизации сервера... так как я например на шаред сижу... и там ничего не наоптимизируешь... есть решения или нет? Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 5 з 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 товаров
vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Ну сами то подумайте :) да еще и кеш никто не отменял (напоминаю) А вот про хипы... myisam Showing rows 0 - 29 ( 108,408 total, Query took 0.0136 sec) MEMORY Showing rows 0 - 29 ( 108,408 total, Query took 0.0003 sec) Надіслати Поділитися на інших сайтах More sharing options...
vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 На хай-лоад проектах вообще каждый HTTP запрос и размер кук принято считать, а тут - 'select *' называют спичками :))) Дык хай-лоад или 120к+ товаров? Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... P.S. Про размер кук особливо порадовало :) Надіслати Поділитися на інших сайтах More sharing options...
rb2 Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 В данном конкретном случает нужно SELECT * и на скорость действительно не влияет, так как кол-во записей, загружаемое этим запросом не болше 15-25-50-75-100 (зависит от настроек пагинации). Вернуть звездочку, и не путайте меня :-) Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Yesvik показывал, как с этим можно бороться. Суть в том, чтобы вложенным запросом сначала выбрать ID нужной сотни товаров, а только потом навешивать на них все JOIN-ы. Спички были протестированны на базе с 750к+ записями и весом в 850мб и выборке 10.000 :) А у вас выборка как выше было написано ну максимум 100 записей более того поля все в индексе как я помню... Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Дык хай-лоад или 120к+ товаров? Одно другому не мешает. В чём вопрос-то? По сути. Понимаю ли я разницу? Понимаю. Хай-лоад это сколько запросов в сутки? Хай-лоад - это на виртуалах или на VDS или всетаки отдельные сервера, но с криворукими админами, а может облачка уже мало? Прошу уточнить 3 момента... Что-то Вы издалека начали. Давайте сэкономим друг другу время, а? У меня член 25 см. P.S. Про размер кук особливо порадовало :) Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Надіслати Поділитися на інших сайтах More sharing options...
vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Мы с этими спичками сталкивались на 800к товаров, с выборками по 1000 товаров. Простейшая операция по укорачиванию `SELECT *` и выборка всего нескольких используемых полей убрала тормоза и сделала человека счастливым. По его словам, всё стало летать. Без всяких переездов на свои сервера и доп. оптимизаций. Не знаю, делал ли он то, что Yesvik предложил - там ещё экономия ресурсов получалась. Или этих спичек хватило. Про максимум 100 записей - см. выше. Вот к стате хороший пример при выборе 1000 товаров - у человека ответы в кеш скорее всего не влезали или кей буфер переполнялся просто... над бы это дело как нить сэмитировать... ну предлагать поднять лимит на один запрос в кеше я думаю уже не надо... :) Просто где она там выборка с ответом включащих описание товара и еще каких полей которые не индексированы в 100+ позиций найти не могу... а то бы бенчнул. Серчь не предлагать он тупой это и без того понятно... Надіслати Поділитися на інших сайтах More sharing options...
vikingshop Опубліковано: 15 березня 2013 Share Опубліковано: 15 березня 2013 Многих радует, когда докапываются. И прикидывают с калькуляторами и бенчмарками. http://yuiblog.com/b...esearch-part-3/ http://developer.yah...tml#cookie_size http://developer.yah...tml#cookie_free Хотя до некоторых всё равно не доходят такие мелочи, кто бы ни объяснял. Всё готовы закешировать и объявить это решение панацеей. Статья порадовала... тут хоть понятно почему это происходит :) Только это было уже можно сказать в прошлом веке... они бы еще ютьюб тогда потестили в 720р Table 1. Response times for various cookie sizes Cookie Size Median Response Time (Delta) 0 bytes 78 ms (0 ms) 500 bytes 79 ms (+1 ms) 1000 bytes 94 ms (+16 ms) 1500 bytes 109 ms (+31 ms) 2000 bytes 125 ms (+47 ms) 2500 bytes 141 ms (+63 ms) 3000 bytes 156 ms (+78 ms) Note: Times are for page loads on DSL (~800 kbps). Надіслати Поділитися на інших сайтах More sharing options...
vikingshop Опубліковано: 27 березня 2013 Share Опубліковано: 27 березня 2013 Насколько я помню, LIMIT в запросах с ORDER BY на последних страницах выбирает все данные, сортирует, а потом отбрасывает и возвращает последние 100 или сколько там. И такое поведение вплоть до MySQL 5.6.2. Так что временные таблицы (или merge file) будет использоваться при больших объемах таблиц, которые ещё мержатся друг с другом. Иммено так и вот сегодня поймал то о чем вы говорили, а иммено увидел converting HEAP to MyISAM... все дело в том что сначала действительно все выбирается во временную таблицу в память и если ее не хватает то все пишется на диск и это просто убивает производительность. А при select * выбераются туда все поля... решается вопрос повышением хипа и верменной таблицы... т.ч. совет вашему клиенту посмотреть размер таблиц которые в выборке и сравнить их с этими параметрами, т.к. думаю что он может всеравно встать на теже грабли что и с селект * только чуть позже. Надіслати Поділитися на інших сайтах More sharing options...
esess74 Опубліковано: 29 квітня 2013 Share Опубліковано: 29 квітня 2013 Hi! Izvinite za shrift... russkogo netu :) Nachnem s togo chto s IT osobo ne druzzu :) Problema u menja takaja.... Opencart dvizzok - bolee 100 000 tovarov, v buduschem okolo 500 000... VPS Hosting data: 70GB Hard Disk 3072MB/6144MB RAM 7000GB Bandwidth Saijt tormozit - normaljno otkrivaetsa toljko home stranica... Sokratil kategorii tovarov do minimuma (4-8)....Brand List to Product page - inogda 30 sec... Admin Product page load time - 1 min, no chashche vsego 504 Gateway Time-out Search - uzzasno medlenno, ili 504 Gateway Time-out admin/php.ini magic_quotes_gpc = Off;register_globals = Off;default_charset = UTF-8;memory_limit = 2048M;max_execution_time = 180000;upload_max_filesize = 9999M;safe_mode = Off;mysql.connect_timeout = 200;session.use_cookies = On;session.use_trans_sid = Off;session.gc_maxlifetime = 12000000;allow_url_fopen = on; Vozmozzno li nastroitj, za razumnuju cenu, chtobi vsje rabotalo, kak nado? Надіслати Поділитися на інших сайтах More sharing options...
RGB Опубліковано: 13 травня 2013 Share Опубліковано: 13 травня 2013 Возможно я непонятно выразился. Мои изменения отностительно атрибутов касались метода getProductAttributes - это вывод атрибутов в товаре. К фильтру это отношения не имеет. Да и FilterPro в стандартном OpenCart нет. В вашем случае да, надо улучшать FilterPro, ведь в нем медленный запрос? Или я ошибаюсь? Мои изменения работают вот тут: http://toporchillo.j...t&product_id=42 Атрибуты, как видите, показываются. А так , довольно сложно синхронизировать 1.5.5 и 1.5.2 вот и ошибки. Пример у вас ошибками сыпет.У меня ваши правки работают на 1.5.5.1 хорошо, .rating сам выпилил - догадался. Но вот обнаружился еще косяк - перестала корректно работать сортировка по параметрам (имя, цена, модель) Вот и до меня наконец то дошло, что сортировка вообще не работает при оптимизации (это я обновил свою 1.5.2.1 и заново пытался ее ускорить) :-) filterpro то использует свою сортировку, вот и не было видно ошибок, а сейчас стало сразу понятно + у вас на демке даже все эти ошибки видны (несмотря на отсутствие производителей или акций, можно открыть поиск и попытаться отсортировать выборку, например, по цене) Надіслати Поділитися на інших сайтах More sharing options... delovoy Опубліковано: 14 травня 2013 Share Опубліковано: 14 травня 2013 Параметры VPS: 12 ядер; 1ГБ оперативы, загрузить ее по полной так и не получилось, максимум 290МБ. 12 ядер? :ugeek: Это где такие ВПС? А частота какая гарантированная? Что за тип виртуализации? Просто интересно... У других ВДС с 3072MB/6144MB RAM Жесть, и где такая халява блин? 1 Надіслати Поділитися на інших сайтах More sharing options... 5 weeks later... ingenerks Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ним скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузить сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Надіслати Поділитися на інших сайтах More sharing options... charlito Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ни-кэгм скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузи-кэшть сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Кэш-кэш-кэш... Кэш - НЕ панацея. Тоже пробовал его нормальный кешер! Надіслати Поділитися на інших сайтах More sharing options... 8 months later... siniy Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Кэш-кэш-кэш... Кэш - НЕ панацея. может и не панацея... предложите свое решение? у вас есть метод решения скорости работы opencart на 100-150К товаров путем оптимизации именно движка, запросов и так далее а не оптимизации сервера... так как я например на шаред сижу... и там ничего не наоптимизируешь... есть решения или нет? Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 5 з 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 користувачів Ні користувачів, які переглядиють цю сторінку
delovoy Опубліковано: 14 травня 2013 Share Опубліковано: 14 травня 2013 Параметры VPS: 12 ядер; 1ГБ оперативы, загрузить ее по полной так и не получилось, максимум 290МБ. 12 ядер? :ugeek: Это где такие ВПС? А частота какая гарантированная? Что за тип виртуализации? Просто интересно... У других ВДС с 3072MB/6144MB RAM Жесть, и где такая халява блин? 1 Надіслати Поділитися на інших сайтах More sharing options...
ingenerks Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ним скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузить сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Надіслати Поділитися на інших сайтах More sharing options... charlito Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ни-кэгм скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузи-кэшть сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Кэш-кэш-кэш... Кэш - НЕ панацея. Тоже пробовал его нормальный кешер! Надіслати Поділитися на інших сайтах More sharing options... 8 months later... siniy Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Кэш-кэш-кэш... Кэш - НЕ панацея. может и не панацея... предложите свое решение? у вас есть метод решения скорости работы opencart на 100-150К товаров путем оптимизации именно движка, запросов и так далее а не оптимизации сервера... так как я например на шаред сижу... и там ничего не наоптимизируешь... есть решения или нет? Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 6 Вперед Сторінка 5 з 6 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1
charlito Опубліковано: 13 червня 2013 Share Опубліковано: 13 червня 2013 По поводу кеширования советую этот модуль http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3477 с ни-кэгм скорость загрузки увеличилась в 2 раза. Все шустро работает сейчас на сайте 7000 товаров.Из тех модулей, что думал могут нагрузи-кэшть сайт, стоит фильтр про от фрилансера и поиск с морфологией и релевантностью (модуля отличные) тормозов пока не обнаружено. Из всех модулей кеширования, что пробовал, этот самый шустрый!!! Кэш-кэш-кэш... Кэш - НЕ панацея. Тоже пробовал его нормальный кешер! Надіслати Поділитися на інших сайтах More sharing options...
siniy Опубліковано: 27 лютого 2014 Share Опубліковано: 27 лютого 2014 Кэш-кэш-кэш... Кэш - НЕ панацея. может и не панацея... предложите свое решение? у вас есть метод решения скорости работы opencart на 100-150К товаров путем оптимизации именно движка, запросов и так далее а не оптимизации сервера... так как я например на шаред сижу... и там ничего не наоптимизируешь... есть решения или нет? Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts