![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Serious2008 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Здравствуйте. Сложилась дилема одна при создании одной базы данных.
И так предположим что у нас есть гипотетически 1 000 000 пользователей(да я понимаю что это нереально, но я надеюсь что моя идея во что-нибудь выгорит и не надо пинать, что зачем так на будущее надеяться, и авось не прокатит, и о этом рано думать, хочу сейчас подумать). И эти пользователи могут создавать особые данные, каждый пользователь предположим 10 000 этих данных, что уже означает что таблица данных 1 000 000 * 10 000, что уже не есть хорошо задержки по получению данных гарантированны. И так главная проблема. Как организовать эту базу чтобы были минимальные задержки. Есть у меня идея, таблица - связка, через которую можно объединять всё. Т.е. таблица типа id, user_id, data_id. И вроде бы всё хорошо, но это получиться всё равно слишком большая таблица. Из чего у меня возникла идея, разбивать пользователей и их данных по разным таблица(базам данных), но как определять кто из какой базы таблицы(базы данных). Самое наглядное решение приходящее в голову, это определённый диапазон id для определённой таблицы(базы данных). Но вроде бы, что-то не так. Варианты все даже самые извращённые приму, т.к. планируется свой выделенный сервер. Поэтому извращаться можно как угодно. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 2 Всего: 71 |
а можно чуть по подробнее что за секретные данные и почему их так много для каждого пользователя? просто я что-то смутно представляю что это может быть
И по моему всё можно решить грамотным построением индексов -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Serious2008 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Gold Dragon,
данные, ну представим что в таблице данных будет (id)INT(), varchar(255), DATETIME(), (user_id)INT(), TINYINT(). В этой таблице только планируется 10 000 записей к каждому пользователю. Просто я не могу раскрывать что за данные, т.к. с другом решили не раскрывать все карты. Ну вообще будут такие запросы. Выбрать из этой таблицы всё что связано с USER_ID. Выбрать из этой таблицы опираясь на id из другой таблицы с данными, другая таблица id INT(), table_1_id INT(),varchar(255), text(), TINYINT(). А так же планируется поиск по первой таблице по varchar(255). Поэтому если будет несколько таблиц, то поиск усложниться. Данных во второй таблице связанных с первой, будет от 10 до 100. К каждому id Это сообщение отредактировал(а) Serious2008 - 20.2.2012, 10:28 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |