Перейти к содержимому


Фотография

Структура базы данных для витрины товаров

база данных admitad товары

  • Пожалуйста, авторизуйтесь, чтобы ответить
14 ответов в этой теме

#1 DeLight

DeLight

    Пользователь

  • Пользователи
  • PipPip
  • 16 сообщений
  • ГородРыбинск

Опубликовано 20 Февраль 2015 - 01:16

Привет, интересно было бы узнать, какую структуры базы данных используют вебмастера для работы с более чем 500 000 товаров или около того. И используются ли вообще при таком раскладе реляционные базы данных?



#2 5hark

5hark

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 144 сообщений

Опубликовано 01 Март 2015 - 14:40

Вот товарищ как раз собирается об этом рассказывать http://blog.admitad.com/?p=6938 может и про базу что нибудь скажет, хотя он похоже не погромист.


Регистрируйся и зарабатывай по царски! smileys-money-114847.gif


#3 Helken

Helken

    Новичок

  • Пользователи
  • Pip
  • 4 сообщений

Опубликовано 25 Март 2016 - 08:16

​И используются ли вообще при таком раскладе реляционные базы данных?

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



#4 Dogica

Dogica

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений

Опубликовано 25 Март 2016 - 14:56

для работы с более чем 500 000 товаров или около того.

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



#5 wwwreptile

wwwreptile

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений

Опубликовано 26 Март 2016 - 13:32

Если грамотно базу составить (запросы к ней), это еще не предел. Далее можно sphinx использовать, там миллионы не предел. Ну и конечно сервак надо не слабый.



#6 dtycg

dtycg

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 203 сообщений

Опубликовано 26 Март 2016 - 21:05

C не слабым серваком и так все будет летать )



#7 val06

val06

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений

Опубликовано 03 Апрель 2016 - 18:04

C не слабым серваком и так все будет летать )

Не факт, с кривыми руками и суперкомпьютер будет тормозить.



#8 dtycg

dtycg

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 203 сообщений

Опубликовано 05 Апрель 2016 - 01:14

​Не факт, с кривыми руками и суперкомпьютер будет тормозить.

Всегда слышишь единственный совет: "Бери сервер мощнее" или "Бери VDS"



#9 val06

val06

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений

Опубликовано 05 Апрель 2016 - 15:56

Всегда слышишь единственный совет: "Бери сервер мощнее" или "Бери VDS"

Это потому, что нельзя впихнуть невпихуемое, особенно если оно туда не влазит. Например спарсеная база данных (дамп) Яндекс-маркета на 700 тыс товаров с характеристиками весит около 2 гиг, и это без фоток. А теперь представим себе как будут работать запросы на такой базе, особенно где движок базы будет хранить их индексы и временные таблицы. ​Тот же Опенкарт на 10 тыс товаров при включенной опции "показывать количество товаров в группе" - загибается.

​На шаред-хостинг такую базу можно забросить разве что как файл для скачивания. :D



#10 Chaos

Chaos

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 342 сообщений

Опубликовано 05 Апрель 2016 - 20:48

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

#11 dtycg

dtycg

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 203 сообщений

Опубликовано 05 Апрель 2016 - 23:58

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

 

Пишите в личку



#12 wwwreptile

wwwreptile

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений

Опубликовано 10 Апрель 2016 - 00:14

У меня как раз есть база на 700тыс приложений ,  все летает на среднем VPS, но использую sphinx 



#13 dtycg

dtycg

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 203 сообщений

Опубликовано 27 Август 2016 - 22:17

​Тот же Опенкарт на 10 тыс товаров при включенной опции "показывать количество товаров в группе" - загибается.

зачем вообще эту кнопку включать



#14 seregaperm

seregaperm

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Опубликовано 30 Декабрь 2016 - 08:21

у меня около 1.5 млн товаров (было под 3) на рядовом vps тормоза начинались где то при 700-800 тыс.

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

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

 

Суть в том, что дополнительно есть справочник слов составленный из всех слов из всех наименований товаров, и они (слова) разным образом обсчитываются (сейчас не помню уже как, можно посмотреть), получаются условные циферки. В дополнительных полях у каждого товара эти циферки записаны. То есть существует некая формула собственного поиска, в расчете которой эти циферки участвуют. Сам же поиск проходит по этим цифрам. Естественно никаких JOIN, в поиске делается несколько простых запросов, что-то можно хранить в оперативке постоянно, но это уже оптимизация...

 

Полнотекстовый поиск не спасет. Сфинкс, наверное, спасает, не использовал. Старался контролировать скорость проекта. Если на простом MySQL из таблицы с миллионами записей я могу быстро получить штук 20 разных записей по числовому индексу, значит в базе поиск-то не медленный, просто запросы не так формулируем, потому и тормозит ))  

 

P.S.

Если в целом касаться поиска, то в идеале, на основании запроса к базе мы должны знать где результат находится (или может находится). В реальности в 99.9% случаев мы шерстим всю базу целиком каждый раз при помощи индексов... ну, шерстим индексы всей базы, а не заведемо известной ее части,  если так будет легче. Хотя правильней будет что бы сам запрос являлся "адресом" нашего "хранилища", а данные только лежали в нужном месте.



#15 cpasoft.ru

cpasoft.ru

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 1 405 сообщений

Опубликовано 30 Декабрь 2016 - 13:31

Сфинкс, наверное, спасает, не использовал

 

Попробуйте, он реально рулит, а забудите о всех танцах с бубнами ) 1.5 млн записей для него вообще ничто, 100-400 мегабайт индексов в оперативе будет висеть и все.







Темы с аналогичными тегами (одним или более): база данных, admitad, товары

Посетителей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных пользователей