@andrey_27081

Как лучше хранить информацию об объявлениях?

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

post - основная информация
img_post - ссылки на картинки объявлений
post-attr - названия атрибутов, и тип
post_attr_value - значения атрибутов, связываю с таблицей атрибутов и постом

При добавлении объявления, под каждое создаю файл с json массивом, чтобы тянуть с него информацию, а не миллион запросов делать в базу при открытии страницы объявления. (файлы раскладываю /region/city/marka/model/id_ads.json)

Так вот вопрос, не ляжет ли эта доска, если наберется порядка 100к объявлений?

Допустим зайдет 1000 человек, и будут юзать фильтры, а это все запросы в базу (в 3 таблиц одновременно), не будет ли перегрузки?

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

Интересно очень, как работает система на дроме, олх, авито и т.д.
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
Предположим, что доску объявлений смотрит много людей и они видят те же объявления. Разве не напрашивается вывод о необходимости кеширования объявлений? Каждый фильтр - это свой набор объявлений. И если часто запрашиваемый, то он практически регулярно будет в кеше.
Решение с файлами плохо масштабируется и вместо этого используйте СУБД. Возьмите Mysql 8+ или Postgresql (кажется с 9) с поддержкой JSON. Добавьте индексы на нужные поля.
Строить таблицы нужно так, чтобы было меньше JOIN, то есть частично денормализовать данные, если расчитано на частые запросы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы