Как лучше спроектировать базу MySql на несколько ТБ?

В планах создать социальную сеть. Для определённого круга людей.
Будет использоваться LAMP (apache mysql php).
По подсчетам БД будет наполнятся на 100gb месяц.

Как лучше спроектировать БД.
1. Одну базу или несколько, одну для статей другую для комментариев..?
2. Как будет вести MySql при таких объемах? (все странички сайта будут кэшироваться и подружатся через аякс).
3. Если создать несколько бд например для комментариев то как искать нужную бд для вывода? (создать связывающую бд с индексами где будет хранится адрес сервера бд, а потом конектица и выводить нужные записи. Может так?

Буду благодарен за помощь.
  • Вопрос задан
  • 4425 просмотров
Пригласить эксперта
Ответы на вопрос 5
@SkyTaurus
Вот тут Дмитрий Бородин CEO TopFace описывает как нужно делать архитектуру spb-borodin.livejournal.com/596.html
Ответ написан
edinorog
@edinorog
Троллей не кормить!
Социальные сети зло. Не нужно их множить. =)
Ответ написан
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
> Как будет вести MySql при таких объемах?
Х**во он себя будет вести через пару месяцев (ну или через 4 месяца, если у вас будет 256 гов памяти).
С другой стороны, 100 гб в месяц у вас там и не будет. А если и будет - то прекратите хранить в базе картинки и другую чушь.

> Если создать несколько бд например для комментариев то как искать нужную бд для вывода?
if comment_id < 1000000 and commend_id > 0 then use mysql1
if comment_id < 2000000 and comment id > 1000000 then use mysql2
Примерно так. А вообще это называется шардированием, как его организовывать - решать вам. Обычно делают метабазу, в которой хранят диапазоны id-шников и соответствия с конкретным сервером. К тому же на сервера со старыми комментариями нагрузка со временем будет и меньше и их можно будет "решардировать" - т.е., например, сливать 3 старых базы в 1 и править id-ники в метабазе. А 2 освободившихся сервера ставить под запись для новых комментариев.

> Одну базу или несколько, одну для статей другую для комментариев..?
Тупиковый путь, если объём данных станет больше определенного порога.
Станет много статей - загнется mysql со статьями, станет много комментариев - ....
В любом случае, нужно и делить по типу хранимых данных, и шардировать.
Ответ написан
Комментировать
@NewTypes
На себя
Кто-то где-то определенно врет. Как полмиллиона пользователей может сгенерировать 100гб за месяц? Вы там может сервис "в интернет по паспорту" пишете по заказу гос структур? Где на каждыцй пук - обязательный лог.
А нужен ли mysql?
Ответ написан
saintbyte
@saintbyte
Django developer
ну ну , данные вконтакте весят примерно 1ТБ и вконтакт для всех . Так что не фантазируйте про несколько ТБ
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы