ModX и несколько миллионов ресурсов

Привет! Подскажите, ModX подходит для нескольких миллионов ресурсов (или minishop-товаров)? Знаете ли примеры ModX-сайтов с таким количеством ресурсов/товаров?
Мартин Очоа
09 июля 2019, 00:49
modx.pro
1 816
0

Комментарии: 17

Наумов Алексей
09 июля 2019, 09:14
0
Будут проблемы со стандартным кешем.
Наверное будут проблемы с таблицами в бд.
    Іван Клімчук
    09 июля 2019, 09:30
    +5
    На голой установке без оптимизаций не вывезет. Ну и несколько миллионов — тут следует уточнять, потому что 2 и 20 млн — это все несколько, но разница между цифрами большая.
      Мартин Очоа
      09 июля 2019, 14:35
      0
      Около 5 млн. А есть опыт оптимизации или может натыкались на чужой опыт?
      Павел Гвоздь
      09 июля 2019, 09:48
      +3
      Как-то ради интереса сгенерил около 1 млн ресурсов на голом сайте. Создавал через runProcessor, чтобы эксперимент был близок к реальности. Так каждый последующий ресурс создавался дольше предыдущего. При чём ближе к цели сохранение ресурса (а точнее сброс и создание кеша) доходило до нескольких секунд. Я уже не говорю о том, что дерево ресурсов просто подвисло (считай, админка перестала функционировать).
      В общем, на ресурсах с такими объёмами далеко не уедешь. Тут либо создавать свою альтернативу ресурсам, либо использовать другие технологии вообще.
        Мартин Очоа
        09 июля 2019, 14:40
        0
        Под такой объем документов/страниц только самопись или какие-то CMS подойдут?

        Очень жаль, что на родненький ModX нельзя рассчитывать. С SeoFilter вообще, наверное, не откроется?..

        Разделение на разных категорий по разным сайтам с разными БД (site.ru/cat1/, site.ru/cat2/) будет одним из вариантов решений?
          Наумов Алексей
          09 июля 2019, 15:13
          +1
          Да делать сайт на modx можно с таким кол-вом записей.
          Но, думается, что хранить в родной таблице страницы не выйдет…
          seoFilter думается сам застрелится еще на этапе установки)
            Евгений Шеронов
            10 июля 2019, 10:49
            0
            SeoFilter от количества ресурсов не особо зависит))
            Из базы вытаскиваются только уникальные значения, если на миллион ресурсов — значений уникальны штук 100, то ничего страшного.
            А если миллион — то да, застрелится))
        Павел Голубев
        09 июля 2019, 15:51
        0
        При 50 тысяч товаров генерация карты ресурсов у меня занимает около 6 сек. При миллионах — жди беды.

        Но если отказаться от стандартных ресурсов Modx, вынести товары в отдельную таблицу — тогда взлетит.
          Мартин Очоа
          09 июля 2019, 19:13
          0
          Почему стандартные ресурсы будут сильно тормозить? Большое кол-во полей?
            Василий Столейков
            09 июля 2019, 21:27
            +1
            Генерация моделей, подсоединение дополнительных полей и опций с других таблиц, работа всего этого множества с кешем…

            Надо продумать свою таблицу с товарами так, чтобы все поля были оптимизированными и адаптированными под ваши нужды. Чтобы не было ни одного лишнего поля. Зато чтобы все опции товаров были в той же таблице (чтобы не делать отдельный запрос в другую таблицу на фронте).

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

            Вообще при таких объёмах, каждый запрос нужно будет оптимизировать. Выигрывать миллисекунды прийдётся и за счёт Fenoma и файловых элементов.

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

            Ну и конечно же сервер должен соответствовать объёмам, на обычном хостинге это не запустится, лучше арендовать сервер.
              Павел Голубев
              10 июля 2019, 10:12
              0
              Причин масса, как уже написали выше. У меня главный тормоз — генерация карты ресурсов.
            Artur Plugin
            10 июля 2019, 08:00
            -1
            стандартно из коробки 1000 товаров и 10 доп. тв полей-цена/размер/итд, всё выше — будет заметно тормозить, лучше разбить на категории, каталоги, молосвязанные сегменты, и сделать нес-ко магазинов-отдельных сайтов на модх с отдельными БД, а управление всем вцелом из гугл скриптов-таблиц, или свой софт. Так будет и по скорости и надежности лучше: одно сломается и не вся таблица 1м полетит, а часть- остальные работают дальше. Да и кому надо список однотипных товаров? Юзеру легче из 10 выбрать чем из 1000, когда он там будет всё просматривать и изучать… и монополисты это зло, лучше 1000 маленьких магазинов-конкуренция больше.

            Но если сильно надо, то можно.
            1. перейти на минишоп- там тв можно в опции-они работают быстрее, но большинство для ms2 модулей — платные и все равно 1 шт =объект поэтому сильно быстрей не будет, но будет сильно дороже :)
            2. оптимизировать модх движок.
            — самое простое — выкинуть id и индекс из таблицы тв значений — она там не нужна и сделать индекс по value(10), сразу будет на 3-7% быстрее.
            — доп.поля хранить не в тв. а добавлять столбцы к таблице ресурсов- своими ф-ями, будет что-то вроде минишопа. Но поля в осн. таблице поддерживаются всеми. есть минусы: типы: число/строка и знач. по умолч=0.
            Но можно списки писать строками [raz,dva,tri] — и можно их сортировать и фильтровать, но это не очень удобно.
            — переписать пол движка модх- заменить одиночные процедуры — массовыми, например создание товара — аргумент не массив ключ-значение, а массив массивов — сразу по 100-500-1000 шт- и она там внутри пишет одним запросом или через сохраненные sql процедуры, а не 1000-3000 запросов как сейчас — это очень сильно ускорит, но надо будет переписывать почти все модули чтобы они это поддерживали — это дорого. Этим вобще проф. разработчики движка должны заниматься, а не одиночные фрилансеры-любители, у меня это есть частично. Если надо, то могу продать/научить/проконсультировать, пишите в личку.

            Есть еще битрикс, опенкарт, престашоп- там можно больше хранить, но нет кастомизации как в модх, что-то свое там сделать очень тяжело и лучше юзать стандартные шаблоны и модули, ну немножко можно дизайн поправить, но сильно там что-то поменять будет трудно, долго и дорого.
              wfoojjaec
              31 июля 2019, 22:49
              +1
              Тестировалось на 1-2 миллионах ресурсов. Системные настройки приходилось тщательно обрабатывать напильником.

              Из того, что падает и невозможно использовать:
              1. mSearch2 — первый камень в огород Наумкина. Но и его понять можно — предусмотреть идеальный вариант для всех сайтов задача непосильная.
              2. pdoPage — катастрофа астрономических масштабов. Постраничная навигация тоже делается своими силами. Всему виной передача всех id в дочерний сниппет.
              3. Стандартная постраничная навигация в товарной админке сжирает RAM. но частично работоспособна.

              Из серьёзных ограничений:
              1. msProducts нужно запускать аккуратно, хорошо подбирая для него параметры.
              2. Максимум 1 TV, максимум 1 свойство у товаров miniShop2 (если оно есть у всех товаров). Всё из-за особенностей таблиц БД.
              3. Успех запуска pdoMenu сильно зависит от дерева категорий.

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

              Время генерации страницы каталога в среднем около 3 секунд, что для автомобилистов вполне терпимо.

              Тот самый пример.
                Руслан Сафин
                31 июля 2019, 23:15
                0
                Я конечно может что то не понимаю, но зачем использовать Modx если планируется больше миллиона товаров?
                  Мартин Очоа
                  01 августа 2019, 00:42
                  0
                  Потому что Modx знаком и нравится. Какая по-вашему CMS подходит для такого большого кол-ва страниц?
                    Руслан Сафин
                    01 августа 2019, 11:46
                    0
                    Мне кажется при таком большом количестве страниц целесообразней использовать фреймворк. Потому что мало заставить modx работать с большим объемом данных, потом весь этот большой костыль придется обслуживать.
                      wfoojjaec
                      09 августа 2019, 20:00
                      0
                      Фреймворки тоже используют ООП-модель. Они рассматривались.

                      В итоге был выбор: или искать спеца под нужный фреймворк или немного допилить уже известный движок. Второе оказалось проще.

                      Любой сайт нужно обслуживать, если это не визитка на чистом HTML.
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  17