Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД: "Ключ-Значение" / 25 сообщений из 25, страница 1 из 1
25.07.2011, 17:52
    #37366248
kastolom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
так много слышал, что высоконагруженные сайты, типа вконтакте да фейсбук, не юзают join-ов, а использую подход к проектированию БД, кодовое имя которого "ключ-значение". Если кто сталкивался, расскажите как это работает, можно даже на небольшом примере.
...
Рейтинг: 0 / 0
25.07.2011, 18:57
    #37366376
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
kastolom ,

Как устроены крупные соц.сети изнутри (в двух частях)

Есть целый класс специализированных СУБД (нереляционных) для этих целей, которым здесь посвящён отдельный форум
NoSQL (Key-value, document, tuple, graph, object, tablular databases)

PS: есть СУБД Caché , в которой сочетаются сразу три метода доступа к данным: прямой (NoSQL), реляционный (SQL) и объектный.
Это даёт разработчику гибкость: universalNoSQL.pdf .
Три интересных ссылки по её использованию в высоконагруженной системе (проект Gaia), которые я приводил, можно найти здесь .
...
Рейтинг: 0 / 0
25.07.2011, 19:18
    #37366403
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
Хакер № 08/09 (128) Тема: "Да пошел ты, SQL! Как отказать от SQL баз данных и выиграть"
...
Рейтинг: 0 / 0
26.07.2011, 00:27
    #37366653
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
On 25.07.2011 18:52, kastolom wrote:
> так много слышал, что высоконагруженные сайты, типа вконтакте да фейсбук, не
> юзают join-ов, а использую подход к проектированию БД, кодовое имя которого
> "ключ-значение". Если кто сталкивался, расскажите как это работает, можно даже
> на небольшом примере.

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

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

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
26.07.2011, 01:37
    #37366677
Mainframe_старый
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
MasterZiv
В итоге я бы ни за что на месте "высоконагруженных сайтов" не использовал бы
EAV, максимум -- исползовал бы гибрид обычной модели и EAV.



для высоконагруженных сайтов есть механизм кэширования и вот тут уже все равно, какая модель в основе, однозначно удобнее гибкая модель.
...
Рейтинг: 0 / 0
26.07.2011, 09:32
    #37366823
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
Mainframe_старыйдля высоконагруженных сайтов есть механизм кэширования и вот тут уже все равно, какая модель в основе, однозначно удобнее гибкая модель. Правильно я вас понял, что для любого сайта подойдёт сколь угодно слабый сервер БД?

Точнее, вы выразились несколько иначе - чем более высоконагруженный сайт, тем слабее нужен сервер БД.
MasterZivпри использовании EAV JOIN-ов гораздо больше в запросах.
(за это его и не любят). При обычной реляционной модели JOIN-ов в запросах
порядка числа таблиц, при использовании EAV -- JOIN-ов порядка числа атрибутов.По моему, подход ключ-значение не тождественен EAV (хотя у них и есть что-то общее).
Под "значение" в случае key-value БД подразумевается не одиночный атрибут, а запись (или объект).
...
Рейтинг: 0 / 0
26.07.2011, 10:20
    #37366888
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
да при чем тут еав воще
кей-велью просто индекс
...
Рейтинг: 0 / 0
26.07.2011, 11:20
    #37366989
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
On 26.07.2011 2:37, Mainframe_старый wrote:

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

Если тупо кэшируются записи из БД, то далеко не всё равно.
Если кэш более интеллектуальный, то да.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
26.07.2011, 11:20
    #37366991
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
On 26.07.2011 10:32, alexeyvg wrote:

> По моему, подход ключ-значение не тождественен EAV (хотя у них и есть что-то общее).
> Под "значение" в случае key-value БД подразумевается не одиночный атрибут, а
> запись (или объект).

Тогда давай определение или ссылку на него.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
26.07.2011, 11:21
    #37366993
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
On 26.07.2011 11:20, ViPRos wrote:
> да при чем тут еав воще
> кей-велью просто индекс

Не, возможно я не в теме и всё перепутал. Извиняюсь тогда.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
26.07.2011, 13:48
    #37367299
Mainframe_старый
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
MasterZivOn 26.07.2011 2:37, Mainframe_старый wrote:

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

Если тупо кэшируются записи из БД, то далеко не всё равно.
Если кэш более интеллектуальный, то да.


кэшируются страницы, а не записи. в таком раскладе скорость работы с БД влияет только на механизм генерации закэшированной страницы, который идет фоново и практически никак не влияет на работу с сайтом (ну чуть дольше делается раз в час/два/10 новая страница или чуть быстрее - для пользователей сайта никаким боком).
...
Рейтинг: 0 / 0
26.07.2011, 13:52
    #37367307
Mainframe_старый
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
alexeyvgТочнее, вы выразились несколько иначе - чем более высоконагруженный сайт, тем слабее нужен сервер БД.


это вы так выразились, а не я. я выразилась, что скорость работы с базой данных может никак не влиять на работу с сайтом пользователей. А , если производительность не ухудшается, то вопрос гибкости приобретает значимость, равную 1.
...
Рейтинг: 0 / 0
26.07.2011, 16:27
    #37367683
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
Mainframe_старыйэто вы так выразились, а не я. я выразилась, что скорость работы с базой данных может никак не влиять на работу с сайтом пользователей.А, ну с такой формулировкой я согласен. На практике, однако, (и в известных существующих проектах "высоконагруженных сайтов") на субд ложится большая нагрузка, и ни один из них не строится по модели EAV (про крайней мере, мне такие неизвестны, поделитесь, если знаете).

И даже теоретически на СУБД не может быть маленькой нагрузки, если есть много операций записи. Просто в EAV количество операций записи будет больше, тут ничего не поделать.

Mainframe_старыйвопрос гибкости приобретает значимость, равную 1.Не вижу каких то преимуществ по гибкости у EAV.

Во всех случаях нужно проектировать модель данных по бизнес модели. Только для EAV используется один синтаксис определения сущностей, атрибутов, констрейнов, и прочего, для SQL другой. Только и всего.
...
Рейтинг: 0 / 0
26.07.2011, 17:04
    #37367804
Mainframe_старый
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
alexeyvg На практике, однако, (и в известных существующих проектах "высоконагруженных сайтов") на субд ложится большая нагрузка, и ни один из них не строится по модели EAV (про крайней мере, мне такие неизвестны, поделитесь, если знаете).



известные не знаю, наша собственная cms строится поверх нашей суэд, которая строится поверх нашей системы управления понятиями , которая основана на описании понятий и отношений и ограничений и физически все это на варианте eav.
сайты работают с обычной для статических сайтов скоростью. число записей в eav несколько миллионов.
...
Рейтинг: 0 / 0
26.07.2011, 17:56
    #37367922
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
Mainframe_старыйизвестные не знаю, наша собственная cms строится поверх нашей суэд, которая строится поверх нашей системы управления понятиями , которая основана на описании понятий и отношений и ограничений и физически все это на варианте eav.
сайты работают с обычной для статических сайтов скоростью. число записей в eav несколько миллионов.Число новых записей в eav несколько миллионов за какое время, не понял? Или всего?
Если всего, то и в екселе можно хранить, при наличии кеширования.

ТС писал про:
kastolomтак много слышал, что высоконагруженные сайты, типа вконтакте да фейсбук , не юзают join-овДля таких не подойдёт.

У меня на предыдущей работе в базе для сайта было несколько сотен млн записей, и новых тысячи в секунду. С EAV моделью пришлось бы сильно увеличить количество серверов :-(
...
Рейтинг: 0 / 0
26.07.2011, 17:58
    #37367926
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
Mainframe_старыйстроится поверх нашей системы управления понятиями , которая основана на описании понятий и отношений и ограничений и физически все это на варианте eavИ я всё таки не понимаю, чем собственная система "описании понятий и отношений и ограничений" лучьше, чем прелдлагаемая производителем СУБД. Её освоить проще, программировать быстрее, там более удобный язык?
...
Рейтинг: 0 / 0
26.07.2011, 19:50
    #37368059
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
[quot alexeyvg]Mainframe_старый чем собственная система "описании понятий и отношений и ограничений" лучьше, чем прелдлагаемая производителем СУБД. Её освоить проще, программировать быстрее, там более удобный язык?
собственная богаче
просто надо ее не на еав маппить, а на обычную реляционку
...
Рейтинг: 0 / 0
26.07.2011, 20:40
    #37368096
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
ViPRosсобственная богачеХорошо, если так :-)
...
Рейтинг: 0 / 0
27.07.2011, 00:52
    #37368247
Mainframe_старый
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
alexeyvgЕсли всего, то и в екселе можно хранить, при наличии кеширования.


я вам сразу сказала, что модель базы для производительности сайтов значения не имеет. можете и на экселе, ежели вам с ним удобнее. нам удобнее eav на реляционной основе.
...
Рейтинг: 0 / 0
27.07.2011, 12:13
    #37368652
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
Mainframe_старыйя вам сразу сказала, что модель базы для производительности сайтов значения не имеет. можете и на экселе, ежели вам с ним удобнее. нам удобнее eav на реляционной основе.А я сразу сказал, что имеет. Вместо 10 серверов потребуется сотня.
А на екселе несколько тысяч.

Я же тоже про свой опыт говорю.

Просто у вас сайты не нагруженные.
...
Рейтинг: 0 / 0
27.07.2011, 13:38
    #37368833
Mainframe_старый
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
alexeyvg
Просто у вас сайты не нагруженные.

видимо, вы просто не умеете их готовить. в статических сайтах БД не имеет значения. она важна только там, где нет кэширования страниц или в вопросах формирования контента вручную.
...
Рейтинг: 0 / 0
27.07.2011, 14:02
    #37368881
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
Mainframe_старыйalexeyvgПросто у вас сайты не нагруженные.

видимо, вы просто не умеете их готовить. в статических сайтах БД не имеет значения. она важна только там, где нет кэширования страниц или в вопросах формирования контента вручную. Ну речь то не о статических сайтах.

Пользователи заводят контент, его же нельхзя всё время держать в кеше и не сохранять.

Само собой, подразумевается, что вся статическая инфа закеширована.
...
Рейтинг: 0 / 0
27.07.2011, 15:02
    #37369018
Mainframe_старый
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
alexeyvgПользователи заводят контент, его же нельхзя всё время держать в кеше и не сохранять.

Само собой, подразумевается, что вся статическая инфа закеширована.

Сайт может вообще не иметь статической информации, но при этом весь быть закэшированным. у нас вообще нет статики, все абсолютно из базы данных - ничего в файлах, тем не менее весь сайт статический. периоды формирования статических страниц разные.
...
Рейтинг: 0 / 0
27.07.2011, 18:36
    #37369577
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
Одно из двух:Mainframe_старыйу нас вообще нет статикиMainframe_старыйтем не менее весь сайт статический
:-)
Mainframe_старыйСайт может вообще не иметь статической информации, но при этом весь быть закэшированным.Ну при чём тут это?

Странно, что вы спорите с простым тезисом:
Если пользователь вводит информацию, то её нужно сохранить.

Ну и второй тезис тоже несложен:
Много сохранений - большая нагрузка на СУБД.
...
Рейтинг: 0 / 0
29.07.2011, 16:14
    #37373206
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Структура БД: "Ключ-Значение"
kastolomтак много слышал, что высоконагруженные сайты, типа вконтакте да фейсбук, не юзают join-ов, а использую подход к проектированию БД, кодовое имя которого "ключ-значение". Если кто сталкивался, расскажите как это работает, можно даже на небольшом примере.Статья на эту тему: Реляционные базы данных обречены?
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД: "Ключ-Значение" / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]