Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2012, 16:06   #1
Избранный
 
Регистрация: 04.01.2012
Сообщений: 4
Радость Высоконагруженный MySQL. Оптимизация.

Разрабатываю сайт, но прежде все хорошенько проектирую. Сайт будет сильно нагружать базу данных. Все будет в потоком режиме. Но к сожалению возникают трудности для того, что бы работало все, а не полегло в первый день же.

Так вот, есть обычная профильница, в нем выводятся лента сообщений, которая пополняется человеком. Первая мысль была создать одну таблицу и разместить там ленту для всех, а после вытаскивать по id для каждого человека, но тогда там сообщений будут миллионы, как не более, не знаю, как это будет нагружать базу сильно?
Или же создавать в отдельной базе данных каждому человеку свою таблицу, а таблица будет называться по id человека, но так таблиц будет множество и придется для выборки прыгать с одной базы в другую.

Вообщем, что можете посоветовать в такой ситуации?
Избранный вне форума Ответить с цитированием
Старый 09.01.2012, 17:21   #2
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Динамически создавать новые таблицы - плохая практика, а от миллиона проиндексированных записей в одной таблице еще никто не умирал
Cronos20 вне форума Ответить с цитированием
Старый 09.01.2012, 17:47   #3
Избранный
 
Регистрация: 04.01.2012
Сообщений: 4
По умолчанию

Спасибо за совет.
Избранный вне форума Ответить с цитированием
Старый 10.01.2012, 09:14   #4
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

Существует практика разделения особо объемных таблиц на две и более. Если эта лента сообщений то можно продумать вариант переноса старых сообщений (недельной или месячной давности) в другую таблицу и при острой необходимости обращаться к ней. Ну думаю моя идея вам понятна :-)
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Старый 10.01.2012, 17:52   #5
Избранный
 
Регистрация: 04.01.2012
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Tayfun Посмотреть сообщение
Существует практика разделения особо объемных таблиц на две и более. Если эта лента сообщений то можно продумать вариант переноса старых сообщений (недельной или месячной давности) в другую таблицу и при острой необходимости обращаться к ней. Ну думаю моя идея вам понятна :-)
Да, хорошая идея, спасибо.
Так же появилась мысль, использовать разные таблицы в зависимости от id пользователя. Каждую тысячу или более пользователей, прикрепить к разным таблицам.
Избранный вне форума Ответить с цитированием
Старый 18.06.2012, 09:21   #6
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 979
По умолчанию

да кстати есть ещё вариант наверное в продолжение темы о разбивки на несколько. есть такой тип таблиц как megre. который объединяет нестколько таблиц и позволяет добавлять запись в первую в списке или в последнюю (в зависимости от выбора) , может имеет смысл добавлять по умолчанию в таблицу мегре а когда нужно просто добавлять новую в список таблиц и ставить её для записей по умолчанию. правда наверное для текущего постоянного отображения данных это плохой вариант, но как архив записей это будет самое лучшее(дабы не мучатся что бы найти нужную базу).
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
IliaIT вне форума Ответить с цитированием
Старый 24.06.2012, 04:28   #7
qip2005
Пользователь
 
Регистрация: 14.09.2008
Сообщений: 61
По умолчанию

Вообще не вижу проблемы миллионов записей в БД, если запросы к такой таблице детально обдуманы, проставлены необходимые индексы. У меня в одном из проектов есть таблица с 12млн. записями, и запросы к этой таблице летают на "УРА". А когда я устраивался на работу в одну компанию по разработке сайтов-дайтингов, разработчики мне рассказывали что 40млн. записей в таблице - это обычная рабочая ситуация, меня это правда немного смутило, но люди работают и с такими объёмами данных.
qip2005 вне форума Ответить с цитированием
Старый 03.07.2012, 23:24   #8
it-webwork
Пользователь
 
Регистрация: 02.11.2011
Сообщений: 29
По умолчанию

Раз песня зашла у кого больше, то на данной момент у нас в базе есть таблица с 226 963 899 записей ))) В день туда пишется около 5 млн записей. И я бы не сказал что у меня есть трудности при работе с этой таблицей...
Правда у нас под эту базу и сервер не слабый, но все равно ...

Последний раз редактировалось it-webwork; 03.07.2012 в 23:27.
it-webwork вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПOМОГИТЕ профи, оптимизация MySQL, есть ли выход??? kikikiki SQL, базы данных 0 08.02.2011 22:47
есть адреси в mysql нужно поиска с AJAX for mysql orter PHP 1 24.09.2010 10:24
Оптимизация баз данных (XML + MySQL) lord22 Фриланс 1 17.06.2010 18:11
обновление в блоге - Работа с MySQL в С++ с использованием библиотеки mysql++ Pblog Обсуждение статей 0 16.08.2009 16:00