За последние 24 часа нас посетили 18293 программиста и 1635 роботов. Сейчас ищет 1591 программист ...

База данных социальной сети

Тема в разделе "MySQL", создана пользователем sDevAlex, 6 ноя 2010.

  1. sDevAlex

    sDevAlex Активный пользователь

    С нами с:
    28 окт 2010
    Сообщения:
    53
    Симпатии:
    0
    Я никогда не разрабатывал огромных проектов, но рано или поздно это должно было случится. Где можно почитать о проектировании огромных баз данных...мне кажется, что такие базы сильно отличаются от баз "простых" сайтов.

    Предложим есть таблица с 1 миллионом пользователей и связная таблица друзей с 2 полями user_id и frend_id. Нужно выбрать 20 друзей с фотками. Такой примерно запрос:
    [sql]SELECT name, photo FROM frends LEFT JOIN users ON frends.frend_id = users.id WHERE user_id = 1[/sql]
    Так я привык делать на обычных сайтах, а как нужно на огромных?

    На фейсбуке вроде они вообще не используют JOIN (MySQL у них для хранение данных key -> value, а все связи делаются на уровне PHP)
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    после к/ф "социальная сеть" всем стало невтерпёж заработать свой миллиард
     
  3. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    насколько знаю - фейсбук для комментариев юзает xml , а с остальным - сам нешарю ))
     
  4. sDevAlex

    sDevAlex Активный пользователь

    С нами с:
    28 окт 2010
    Сообщения:
    53
    Симпатии:
    0
    Код (Text):
    1. после к/ф "социальная сеть" всем стало невтерпёж заработать свой миллиард
    Я всего скромный программер, это не моя сеть.
     
  5. Зверь

    Зверь Активный пользователь

    С нами с:
    2 ноя 2010
    Сообщения:
    80
    Симпатии:
    0
    Адрес:
    Екатеринбург
    sDevAlex
    Да скорее всего делают все также, только продумывают структуру базы качественно и делают индексы, плюс сервера у них мощные.
     
  6. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Новый лозунг! Каждому по социальной сети!!! Главное, чтобы сервера были мощные!!!
     
  7. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    sDevAlex, могу ошибаться, но миллион небольших записей для любой БД не большая проблема. У MySQL, насколько я знаю, select оптимизирован, тем более, с myisam (но траблы с апдейт и инсерт, или с делетом, не помню). Используй пока так. Будут тормоза попробуешь два запроса вместо join. Или в мемкэш засунешь.

    "Друзьями", имхо, вообще не стоит забивать себе голову. Основные проблемы-то будут при работе с фото и часто меняющимися данными. Для всего остального есть мастеркард. :)
     
  8. sDevAlex

    sDevAlex Активный пользователь

    С нами с:
    28 окт 2010
    Сообщения:
    53
    Симпатии:
    0
    Почему бы тогда не использовать просто NoSQL базы данных?
     
  9. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    а как же поиск по информации ?
     
  10. sDevAlex

    sDevAlex Активный пользователь

    С нами с:
    28 окт 2010
    Сообщения:
    53
    Симпатии:
    0
    Да...ляпнул и не подумал.
     
  11. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    ну если без поиска , то всё просто как вы и сказали
    с поиском же например по пользователям нужно будет юзать бд только при реге и апдейте инфы , так что не смертельно
     
  12. sDevAlex

    sDevAlex Активный пользователь

    С нами с:
    28 окт 2010
    Сообщения:
    53
    Симпатии:
    0
    ВКонтакте вроде так и делают: у них 2 базы...одна MySQL, вторая самописная - когда-то, где-то читал.
    ---
    Вот мне сейчас интересно как себя будет вести MySQL с таблицей ключ => значение, если в ней 1 миллиард записей...DELETE или INSERT скорей всего будут выполнятся очень долго...
     
  13. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    ну так собственно принимайтесь за тесты =)
     
  14. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    йопт, еще год назад - если у тебя нет своей цмс, то ты - лох. Теперь срочно надо обзаводиться своей социалкой :)
     
  15. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Апельсин
    Время летит. Согласен. =)
     
  16. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    гениально. голова - офф?
     
  17. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Я знаю, о чём будет новый диск Попова ...
     
  18. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    не осилит :))
     
  19. sDevAlex

    sDevAlex Активный пользователь

    С нами с:
    28 окт 2010
    Сообщения:
    53
    Симпатии:
    0
    Вот всегда вы пишите "велосипед, Каждому по социальной сети!!!" и тд.
    ---
    Вот хорошая статья на эту тему. А эту тему можно закрыть.
    http://l-o-n-g.livejournal.com/153756.html