9 мая 2017 г., 14:57

Вопрос по нагрузке и поиску

В блоге Песочница

Планируется сайт со статьями, которые будут добавлять пользователи, есть пару вопросов:
1. Если разложить статьи по папкам (например один. два, три...) с небольшой вложенностью, потом организовать поиск при помощи SimpleSearch для каждой подпапки, SimpleSearch справиться с большим объемом статей(записей)? 2. Как лучше заменить tv-параметры для статей? Я подумываю создать отдельную таблицу и связывать по id статьи с id в своей таблице, а для поиска SimpleSearch при сохранении формировать строку из сохраняемых параметров что сохраняются в мою табличку и сохранять строку, например, в аннотации документа чтобы SimpleSearch подхватывал и мои параметры при поиске. Или все tv-параметры лучше хранить json строкой через MIGX?
4. Как лучше хранить ссылки на картинки для статей. 3. что лучше использовать для создания своих таблиц MIGX BD или специальный плагин для создания модулей или вовсе вручную, создать таблицы в БД и скриптом посоздавать все нужные для PDO файлы 4. Если в таблице будут храться повторяющиеся вещи (например болт, гайка, шуруп) и пользователь при добавлении просто будет выбирать это из выпадающего списка, как лучше организовать хранение таких элементов? жестко в коде в файле с формой добавления? Или где-тов БД 5. Или может вообще все статьи, дополнительные поля для статей, данные пользователей - вынести в отдельные таблицы и брать от туда? Но тогда поиск не будет работать - писать самому + сео, надо формировать отдельно файл. 6. Сколько статей может держать modx без TV?
7. Будет ли большая нагрузка если выборка будет происходить по нескольким таблицам через join'ы.
8. Какой лучший вариант для поиска?
Добрый день.

На самом деле вы вопросы написали здесь по проекту, на который бюджет должен быть не менее ляма рублей (это минимум). Если клиент вам столько не платит, на MODX точно не стоит пытаться этого делать. Серьезно. Из коробки он это не потянет, а на докручивания нужно много времени и денег (и знаний, либо еще больше денег на тех, у кого знания эти есть). Как вариант, взять NewsModxBox. Да, он сложный, но часть вопросов отсюда перекрывает. Он писался как раз под новостной портал, большинство вопросов по нагрузке и работе с большим количеством картинок изначально прорабатывалось, и в бою сайт на 40 000+ страниц он летал (не из кеша менее чем за 0.3 сек, из кеша менее чем за 0.1 сек (это при том, что даже не php7 был)).

Краткие ответы по вопросам дам.

1. Про SimpleSearch лучше у Василия на modx.pro спрашивать, это его разработка, он лучше знает про его возможности и ограничения.
3. При правильном подходе MIGX DB вполне годится (только не MIGX с хранением данных в JSON). Но лучше конечно же самому, хотя возрастает нагрузка на разработку своих интерфейсов.
4. В NewsModxBox есть своя система тегов, и выборка по ним выполняется быстро. Здесь, к слову, вы тоже видели работу с тегами, когда создавали топик. Всего на сайте почти 1000 тегов, они за раз тянутся с сервера
AutoComplete по ним, как вы видели, тоже работает быстро.
5. Нет, выхлопа будет меньше, чем потерь. Лучше проработать систему кеширования. В крайнем случае можно и вовсе кеш документов рубануть компонентом cacheOptimizer, и тогда от документов нагрузки на кеш не будет. Немного придется поколдовать, чтобы ссылки внутри системы без карты ссылок заработали, но это решаемая задача.
6. Я в свое время разгонял до 1 000 000 документов. Это вполне может работать и с ТВшками.
7. Вопрос слишком расплывчатый. Смотря что за выборка. На одни и те же таблицы и задачи запросы можно построить по разному, и производительность может отличаться в тысячи раз (в прямом смысле).
8. Поиск - это отдельная большая тема.


Добавить комментарий