/ / як facebook обчислює взаємних друзів? [закрито] - facebook, дизайн баз даних, граф

як Facebook обчислює взаємних друзів? [closed] - facebook, database-design, graph

На вашу думку, як facebook обчислює взаємних друзів?

Чи кеширував усіх взаємних друзів для кожного користувача? Дозволити MySQL обчислювати за допомогою запиту? Здійснює запит до бази даних, а потім обчислює список? інший?

Відповіді:

2 для відповіді № 1

Я вважаю, що це попередньо обчислюється і не робиться коливи завантажуєте сторінку. Як? Існує кілька варіантів розглянути цю проблему. Поширений спосіб - розглядати дані як графік, де кожна людина є вершиною, а край визначає дружбу. Ітерація через кожну існуючу пару осіб і пошук 2 ребер шляху. Вершини, якими ви перейшли, - це взаємні друзі. Якщо ви дійсно хочете вступити в це, я б запропонував почати з вивчення Теорія графіка

При роботі з таким обсягом даних використання MySql та запитів не працюватимуть. На невеликих обсягах даних це буде.