Перейти к содержанию
barclayard

OpenCart с базой товаров 100к+

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

Всем привет!

 

Есть задача сделать магазин для 100-200-300 тысяч и более товаров.

 

Используется OC 1.5.6, из весомых нестандартных решений установлены: модуль фильтрации по цене\атрибутам, причем в категориях выводятся товары из подкатегорий и атрибуты в модуле тоже выводятся по всем товарам из подкатегорий.

 

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

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

 

И заодно вот такой вопрос еще есть (мне кажется, этот запрос сильно тормозит работу) - это getProducts, который для каждого товара делает отдельный запрос из getProducts. Стоит ли поменять этот запрос, чтобы сразу возвращал все значения, не обращаясь к функции getProducts? 

Добавил индекс для url_alias, для некоторых полей товаров.

 

Сейчас страница категории с 80к товарами грузится 7 секунд, 6.5 из которых - ожидание ответа сервера (с включенным модулем фильтрации по атрибутам) и 3.5 секунды (3 секунды ожидание сервера) с выключенным модулем фильтрации по атрибутам.

 

Понимаю, что вопрос совсем не простой, но, может быть, кто-то работал с большими базами, даст советы по оптимизации работы? 

 

Заранее спасибо! Думаю, тема может быть еще кому-нибудь полезна (поиском не нашел похожей)

Изменено пользователем barclayard

Поделиться сообщением


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

Вам надо к Мише обращаться, он должен быть в курсе в личку скину контакт

Изменено пользователем Artm

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Вам надо к Мише обращаться, он должен быть в курсе в личку скину контакт

 

Миша уже сам здесь. :-)

 

 

Все решаемо, 100 - это семечки.

Есть и по 500 000 примеры если надо.

 

 

И заодно вот такой вопрос еще есть (мне кажется, этот запрос сильно тормозит работу) - это getProducts, который для каждого товара делает отдельный запрос из getProducts. Стоит ли поменять этот запрос, чтобы сразу возвращал все значения, не обращаясь к функции getProducts? 

Добавил индекс для url_alias, для некоторых полей товаров.

 

Это первые два из сотни, проблем, которые у вас возникнут. А еще есть поиск. Карта сайта и еще... и еще ... и еще....

Цена вопроса настройки системы  100к+  от $200. Если обладаете бюджетом - пишите в личку.

Поделиться сообщением


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

Миша уже сам здесь. :-)

 

 

Все решаемо, 100 - это семечки.

Есть и по 500 000 примеры если надо.

 

 

Это первые два из сотни, проблем, которые у вас возникнут. А еще есть поиск. Карта сайта и еще... и еще ... и еще....

Цена вопроса настройки системы  100к+  от $200. Если обладаете бюджетом - пишите в личку.

 

спасибо за предложение, но есть время сделать все своими руками, хотел просто узнать какие-то самые тормозные места, может кто поделился бы своим опытом

Поделиться сообщением


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

спасибо за предложение, но есть время сделать все своими руками, хотел просто узнать какие-то самые тормозные места, может кто поделился бы своим опытом

 

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

Начинать нужно видимо с азов устройства реляционных баз данных. Принципов работы web-сервера.

После этого перелопатить массу информации связанной с оптимизацией запросов. Тонкой настройкой MySql. Принципах работы разных типов индексов на разных типах полей.

Также нужно очень внимательно и детально изучить работу системных библиотек Opencart  и встроенные методы построения деревьев базовых сущностей.

После этого освоить навыки управления и настройки vsp сервера. Изучить особенности использования, интеграции и настройки поискового демона Sphinx.

Освоить парадигму написания CLI скриптов.

 

И может быть тогда, с вероятностью пятьдесят на пятдьесят, вы сможете привести магазин в какое то подобие быстрой стабильной системы.

  • +1 2

Поделиться сообщением


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

Поискав чуть получше, нашел вот такую тему:

https://opencartforum.com/topic/17709-%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0-%D0%BF%D0%BE%D0%B4-120-000-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2/

 

Так что, думаю, что тему стоит закрыть

Поделиться сообщением


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

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

Начинать нужно видимо с азов устройства реляционных баз данных. Принципов работы web-сервера.

После этого перелопатить массу информации связанной с оптимизацией запросов. Тонкой настройкой MySql. Принципах работы разных типов индексов на разных типах полей.

Также нужно очень внимательно и детально изучить работу системных библиотек Opencart  и встроенные методы построения деревьев базовых сущностей.

После этого освоить навыки управления и настройки vsp сервера. Изучить особенности использования, интеграции и настройки поискового демона Sphinx.

Освоить парадигму написания CLI скриптов.

 

И может быть тогда, с вероятностью пятьдесят на пятдьесят, вы сможете привести магазин в какое то подобие быстрой стабильной системы.

 

Большая часть описанного мне хорошо знакома, просто быстрее дело идет, когда кто-то делится своим накопленным опытом

Поделиться сообщением


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

К сожалению, по вашему первому посту, складывается ощущение, что вам знакомо это все достаточно поверхностно. Так как.

 

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

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

 

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

Поделиться сообщением


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

К сожалению, по вашему первому посту, складывается ощущение, что вам знакомо это все достаточно поверхностно. Так как.

 

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

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

 

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

 

Да может все и так, поэтому и создал тему. Если бы все было понятно на 100%, зачем ее создавать? Просто вы предложили решить проблему за деньги, а я пришел за тем, чтобы получить направление, куда копать, и решить ее самому. Я не спорю, что проблема серьезная, эффективно можно решить, обладая большим опытом, но тему создал в разделе "Помощь программистам и разработчикам", помощь хотел получить не в виде решения этой проблемы за меня.

Поделиться сообщением


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

Ваш вопрос  - не является общим. И только частично затрагивает программирование  и разработку. А больше относится к сфере тонкого системного администрирования. Подобных вашему посту на форуме - пруд пруди. Поищите поиском. Решения  в "один клик" или в "три клика" - не существует.

Поделиться сообщением


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

Ваш вопрос  - не является общим. И только частично затрагивает программирование  и разработку. А больше относится к сфере тонкого системного администрирования. Подобных вашему посту на форуме - пруд пруди. Поищите поиском. Решения  в "один клик" или в "три клика" - не существует.

 

Вы меня неверно поняли. Я просил поделиться опытом. Решение в 1 клик или в 3 клика я не искал. Я примерно представляю проблемные места CMS. Нужные ответы нашел в теме, которую указал уже в 6м сообщении. Поэтому прошу тему закрыть, обсуждать более нечего, мне кажется. Вам спасибо за отклик

Поделиться сообщением


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

Вы меня неверно поняли. Я просил поделиться опытом. Решение в 1 клик или в 3 клика я не искал. Я примерно представляю проблемные места CMS. Нужные ответы нашел в теме, которую указал уже в 6м сообщении. Поэтому прошу тему закрыть, обсуждать более нечего, мне кажется. Вам спасибо за отклик

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

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.