Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Эффективность реализации (Иван) 02/07/2012 - 02:51:09
      Re: Эффективность реализации (Akina) 02/07/2012 - 09:02:03
      Re: Эффективность реализации (Иван) 02/07/2012 - 15:07:06
      Re: Эффективность реализации (Akina) 02/07/2012 - 18:41:35
      Re: Эффективность реализации (Иван) 02/07/2012 - 19:12:28
      Re: Эффективность реализации (Akina) 02/07/2012 - 20:55:16
      Re: Эффективность реализации (Иван) 02/07/2012 - 21:32:22
      Re: Эффективность реализации (Akina) 02/07/2012 - 22:04:04
      Re: Эффективность реализации (Иван) 02/07/2012 - 23:56:57
      Re: Эффективность реализации (Akina) 03/07/2012 - 17:20:54

> Original message text:
> From: Иван - 02/07/2012 - 02:51:09
> Subject:Эффективность реализации
> -----------------
> Здравствуйте, Есть пользователи около 10 тыс а со временем будет и побольше, они пишут в сутки около 30-50 мини-постов(около 240 символов). Мне необходимо как можно быстрее доставать запись из БД по post_id(id записи - уникальное значение). Это поле я поставил в index. Так как объем данных довольно не малый, я решил разделить эти записи по таблицам, то есть 1 пользователь - 1 таблица для его постов. И зная id_user и id_post можно выбирать посты... Стоит ли так разбивать данные или же по базам разбить? или же mysql все ровно? Подскажите пожалуйста как лучше сделать? Ps тип таблиц innodb - так как нужно сразу и писать в таблицу и что бы во время записи можно было выбирать данные из нее(без блокировки всей таблицы)...
>


From: Akina - 02/07/2012 - 20:55:16
Subject:Эффективность реализации
-----------------
> мне будет необходимо выбирать несколько записей определенного пользователя. А в случае если все записи всех пользователей хранить в 1 таблице, то придется при запросе применять другой индекс(id_user).

На самом деле в дополнение к первичному индексу по id_post нужен будеть составной индекс (id_user, id_post).

> Или это ничего не меняет?

Ну почему? меняет... но в худшую сторону...

Представьте, что Вам потребовалось найти сообщение по номеру. Пользователь неизвестен. Что будете делать на куче таблиц?

Ещё хуже. Нужно добавить новое сообщение. Как убедиться, что присваиваемый ему номер уникален в рамках совокупности всех таблиц? напомню Ваши же слова - "id записи - уникальное значение".

> на linux максимум около 2 Тб. Со временем ведь этот размер будет превышен...

240 символов сообщение, плюс два ID... допустим, полкилобайта. 2 Тбайт - это 4 миллиарда записей. Допустим, что аж 100 тыс. юзеров пишут по 50 мессов в сутки, это (да плюс весеннее обострение) - это 2 миллиарда мессов в год. Т.е. только к конце второго года МОЖЕТ БЫТЬ впереди замаячит проблема большого файла (хотя скорее всего Вы увидите, что файл растёт куда как медленнее, и не в разы - на порядок) - так и всего делов что прочитать хелп про партиционирование... и всё, проблема ушла.

Нет смысла решать проблему, если сама возможность её возниконвения под большим вопросом.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
41447



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |