Перейти к содержанию
Форум поддержки пользователей VamShop

VaM Shop - Не оптимизирован под большие каталоги


Максим Гинзбург

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

Максим Гинзбург

После консультации нескольких программистов и просмотре кода - утверждаю система VAM SHOP подходит для магазинчиков с 1000-2000 товаров. У меня в магазине 14 000 товаров и, чтобы он работал - пришлось отключить практически все боксы, переписать бокс CATEGORIES (я не знаю чем вы руководствовались, когда писали его - но блок не кешируется и каждый раз при открытии магазина система пробегается по всем товарам) и бокс "новинки" - разумеется, чтобы вывести новые товары - надо пробежаться системе по всей таблице...

УЖ если делаете платный продукт - делайте его качественный. Потраченные силы и геморой со скриптом - если перевести в деньги, то можно было взять битрикс...

С уважением, Максим.

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

Спасибо за гениальный совет, может Вы еще объясните, почему разработчики не могли предусмотреть элементарные моменты по vamshop?

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

бокс CATEGORIES (я не знаю чем вы руководствовались, когда писали его - но блок не кешируется и каждый раз при открытии магазина система пробегается по всем товарам)

2 раза чушь:

- кешируется;

- не "пробегается по всем товарам". Он вообще по товарам не пробегает.

бокс "новинки" - разумеется, чтобы вывести новые товары - надо пробежаться системе по всей таблице...

Аналогичный бред - не нужно бегать по всей таблице.

УЖ если делаете подобные замечания, то хотя-бы попытайтесь разобраться в техническом аспекте проблемы.

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

ок.

сайт stroy-haus.ru. 14000 наименований. Размещался на 3х!! разных хостингах, думали проблема в этом.

Закомментировали все боксы (особенно бокс вывода новинок) - стал работать. До этого всегда была надпись "/db_error.html"

Это как объясните?

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

Т.ч. прошу не писать пустословные ответы, если Вы не тестировали ВАмЩоп с базой более 10 000 наименований...

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

Я б громких таких заявлений не делал, что прям не оптимизирован, но действительно, чем больше товаров, тем больше нагрузка на MySQL и тем требования к скорости работы MySQL возрастают, так оно везде так, с любым php скриптом, т.е. доля правды есть в этом, но всё-таки моё мнение, что сначала нужно решать на аппаратном уровне, т.е. ставить больше оперативной памяти, которая нужная для быстрой работы mysql, увеличивать отводимые ресурсы для работсы с mysql, ещё лучше вообще иметь свой сервер с большим количество оперативной памяти и только потом уже смотреть на скрипт. SQL кэш конечно тоже лучше включить в Админке - Настройки - Основные - Кэш.

P.S. Зря Вы, кстати, пример с битриксом приводите, вот кто-кто, а битрикс требует ресурсов гораздо больше.

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

Битрикс требует больше ресурсов, но на vps работает отменно независимо от размера базы товаров!!!!

а вамшоп требует мало ресурсов если 10 товаров и нереальный отдельный сервак, если 14 000 товаров.

Причем осталось еще море элементарных вещей, которые можно было бы оптимизировать!

на Вашем месте я бы этим занялся уже сегодня, т.к. в остальном система далеко не плохая

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

Максим Гинзбург

Так я и занимаюсь постепенно, просто не получается всё одномоментно сделать.

Спасибо за совет.

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

Чтобы написать таблицу требований к хостингу в зависимости от кол-ва наименований товаров (раз уж в системе от этого зависит производительность) - много времени не надо.

А все вышеперечисленные моменты, я уверен, Вы прекрасно знаете. Тогда непонятно, почему когда  писал в службу поддержки нельзя было сразу назвать мне причину медленной работы (кол-во товаров) и назвать мне два файла:

/httpdocs/templates/vamshop/source/inc/vam_show_category.inc.php

/httpdocs/templates/vamshop/source/boxes.php

которые надо редактировать, чтобы снизить нагрузку...

И еще один вопрос: сразу скажу, я не программист, но когда в файле "boxes" разкомментировать строку:

//  if (substr(basename($PHP_SELF), 0,8) != 'advanced') {require(DIR_WS_BOXES . 'whats_new.php'); }

система мгновенно перестает работать (db_error). Неужели, чтобы показать новые товары - нужно много ресурсов? нельзя этот модуль переписать и закешировать?!

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

А можно тон на более приветливый сменить?

Для ваших задачь любой двиг надо дорабатывать напильником...

Кроме того есть демоверсия, взяли бы и оттестировали для начала, чем делать проект.

по поводу того, что:

УЖ если делаете платный продукт - делайте его качественный.

Качественный это то что быстро скрипт не работает, а он возможно:

1. на это не расчитан

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

данная притензия мне напоминает ситуацию, моего знакомого который купил Хонду Цивик для стрит-рейсинга, а она ж для этого не предназначена в заводской поставке, ну тюнинговать ее надо и в первую очередь двиг.

Вот и в вашей ситуации уважаемый тоже самое.

А вообще VaM и его работа на протяжении 5-лет дали возможность многим предприимчивым людям состояться в интернет-бизнесе.

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

Я неотрицаю того, что двиг тормозит и разобраться в этой ситуации необходимо, это ВСЕМ без исколючения фурумчанам пойдет на пользу

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

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

Уважаемый "PlazaUA", не будим вести лингвистические споры, но вступление "А можно тон на более приветливый сменить? " и дальнейший "тон" вашего сообщения вызвали небольшую улыбку на моем лице. 

Спасибо за Ваше мнение.

Спасибо за советы не говорю, т.к. по делу информация в вашей реплике отсутствует.

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

Я с вами и не виду лингвистические споры, более подробно http://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B3%D0%B2%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B0

Да и вам пожалуйста нескажу...

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

когда в файле "boxes" разкомментировать строку:

//  if (substr(basename($PHP_SELF), 0,8) != 'advanced') {require(DIR_WS_BOXES . 'whats_new.php'); }

система мгновенно перестает работать (db_error).

Какая именно ошибка появляется? Текст сообщения приведите.

Неужели, чтобы показать новые товары - нужно много ресурсов? нельзя этот модуль переписать и закешировать?!

Нет, совсем чуть-чуть ресурсов, чтобы выбрать десяток записей. Хотя, конечно, чуть-чуть подправить запрос стоит (использовать JOIN).

Кешировать нельзя - теряется смысл случайной выборки.

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

Требования к хостингу как раз написать легко:

php + mysql

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

Я лишь могу сказать, что тема интересная и важная поднята и я постараюсь в будущих версиях постепенно разбираться с этой проблемой, т.е. с уменьшением количества sql запросов вообще и улучшением качества отдельных sql запросов в частности.

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

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

Хотелось-бы получить ответ на свой вопрос: "Какая именно ошибка появляется? Текст сообщения приведите."

Какая именно ошибка появляется? Текст сообщения приведите.

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

Кого касается проблема больших каталогов, создайте индекс по полю categories_id в таблице products_to_categories. Время выборки снижается в десяток раз. (30 тыс позиций, 30 каталогов)

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

Так а ведь по умолчанию код таблицы products_to_categories такой:


DROP TABLE IF EXISTS products_to_categories;

CREATE TABLE products_to_categories (

  products_id int NOT NULL,

  categories_id int NOT NULL,

  PRIMARY KEY (products_id,categories_id)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;
[/code]

Разве нет здесь индекса categories_id!?

Ведь в PRIMARY KEY указано.

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

Есть, но спаренные индексы - это совсем не одно и то же, что отдельные по полю.

З.Ы. Это не мои слова - я не профессионал в СУБД. Это слова человека, которого мне порекомендовали. Я пригласил его ознакомиться с моей проблемой. Ему хватило две минуты,

чтобы определить вариант оптимизации. Добавил индекс. Результат - время запроса по выборке товаров при просмотре каталога сократилось более чем в 60 раз - раньше запрос выполнялся 60-80 секунд, сейчас менее секунды. Перестал наезжать хостер, который заставлял переезжать на VDS, поскольку моя БД перегружает сервер. Переезжать на VDS теперь нет необходимости, остаюсь на простом тарифе (с суммой оплаты за год меньшей, чем на VDS за месяц).

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

Runtime_error

А можете в phpMyAdmin у себя зайти, в таблицу products_to_categories и сделать импорт (закладка такая) только структуру таблицы?!

Покажите код своей таблицы вобщем.

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