Spear
почемучка
Сервис блогов. Вопрос по распределению нагрузок на БД
Христос Воскрес!
А теперь по теме
я сейчас делаю сервис блогов, и никак не могу решить как будет правильнее распределить нагрузку на БД. Есть 2 варианта, буду рад если подскажете какой лучше использовать:
1. вариант
есть база, например, blog_blogs
в ней приблизительно такие таблицы:
1_blog_posts
1_blog_comments
1_blog_options
в каждой таблице есть поле BLOG_ID, которое показывает к какому блогу отновится та или иная запись, настройка и пр.
Каждый такой набор таблиц будет обслуживать 200 блогов.
То есть когда будет регистрироваться 201 блог, то в базе данных blog_blogs создастся новій набор таблиц:
2_blog_posts
2_blog_comments
2_blog_options
2. вариант
есть база, например, blog_blogs_1
в ней все та же структура
1_blog_posts
1_blog_comments
1_blog_options
но теперь каждый набор таблиц обслуживает всего 1 блог.
То есть на 100 блогов будет создано 100 наборов таблиц, итого в этой базе будет (в данном варианте) 300 таблиц (хотя на самом деле набор таблиц сейчас - это уже 7-8 таблиц).
т.к. база не резиновая то после того как база данных blog_blogs_1 вместит в себя обслуживание, скажем, 1000 блогов - будет создана новая база данных, blog_blogs_2. И так далее.
Пожалуйста, - посоветуйте, как правильнее делать? Сколько таблиц может вместить в себя 1 база данных (так, чтобы работало все нормально, а не еле-еле
минус первого варианта - добавление в каждый (практически) запрос where BLOG_ID = $blog_id. Кроме того - довольно большой объем данных в каждой таблице
плюсы этого варианта - отсутствие тысяч таблиц в базе данных
плюс второго варианта - не будет никаких where blog_id=$blog_id т.к. выборки будут производиться по таблице, которая все содержит данные только этого блога
минусы - большое кол-во таблиц, чатсь из которых, конечно, будет простаивать "впустую" (блоги спаммеров, забаненые блоги, блоги с малой активностью). Кроме того, из-за большого объема таблиц появляется новый геморрой в виде обновления всех наборов таблиц при апргрейде скриптов.
Буду ОЧЕНЬ ОЧЕНЬ ОЧЕНЬ рад любой помощи и советам!
ещё раз с праздником! %)
Христос Воскрес!

А теперь по теме

я сейчас делаю сервис блогов, и никак не могу решить как будет правильнее распределить нагрузку на БД. Есть 2 варианта, буду рад если подскажете какой лучше использовать:
1. вариант
есть база, например, blog_blogs
в ней приблизительно такие таблицы:
1_blog_posts
1_blog_comments
1_blog_options
в каждой таблице есть поле BLOG_ID, которое показывает к какому блогу отновится та или иная запись, настройка и пр.
Каждый такой набор таблиц будет обслуживать 200 блогов.
То есть когда будет регистрироваться 201 блог, то в базе данных blog_blogs создастся новій набор таблиц:
2_blog_posts
2_blog_comments
2_blog_options
2. вариант
есть база, например, blog_blogs_1
в ней все та же структура
1_blog_posts
1_blog_comments
1_blog_options
но теперь каждый набор таблиц обслуживает всего 1 блог.
То есть на 100 блогов будет создано 100 наборов таблиц, итого в этой базе будет (в данном варианте) 300 таблиц (хотя на самом деле набор таблиц сейчас - это уже 7-8 таблиц).
т.к. база не резиновая то после того как база данных blog_blogs_1 вместит в себя обслуживание, скажем, 1000 блогов - будет создана новая база данных, blog_blogs_2. И так далее.
Пожалуйста, - посоветуйте, как правильнее делать? Сколько таблиц может вместить в себя 1 база данных (так, чтобы работало все нормально, а не еле-еле
минус первого варианта - добавление в каждый (практически) запрос where BLOG_ID = $blog_id. Кроме того - довольно большой объем данных в каждой таблице
плюсы этого варианта - отсутствие тысяч таблиц в базе данных
плюс второго варианта - не будет никаких where blog_id=$blog_id т.к. выборки будут производиться по таблице, которая все содержит данные только этого блога
минусы - большое кол-во таблиц, чатсь из которых, конечно, будет простаивать "впустую" (блоги спаммеров, забаненые блоги, блоги с малой активностью). Кроме того, из-за большого объема таблиц появляется новый геморрой в виде обновления всех наборов таблиц при апргрейде скриптов.
Буду ОЧЕНЬ ОЧЕНЬ ОЧЕНЬ рад любой помощи и советам!
ещё раз с праздником! %)