Новая таблица для каждого пользователя?

Я хочу упаковать новую таблицу в ящики для каждого нового пользователя на веб-сайте, и я предполагаю, что будут многие пользователи, я уверен, что поисковая производительность будет хороша, но что с обслуживанием??

Это - MySQL, который не имеет никакого предела в количестве таблиц.

Большое спасибо.

11
задан eomeroff 30 May 2010 в 21:21
поделиться

4 ответа

Фактически таблицы также хранятся в таблице. Таким образом, в этом случае вы переместите поиск в таблице пользователей на поиск таблицы в системных таблицах.

Производительность И ремонтопригодность сильно пострадают.

17
ответ дан 3 December 2019 в 01:24
поделиться

Зачем вам это нужно? Просто заведите одну таблицу для каждой вещи, которой нужна таблица, и добавьте колонку "пользователь". Наличие кучи таблиц против кучи строк не улучшит производительность.

11
ответ дан 3 December 2019 в 01:24
поделиться

Это не очень хорошая идея:

  • Максимальное количество таблиц не ограничено, но размер кэша таблиц ограничен, открытие таблиц обходится дорого. В MyISAM закрытие таблицы отбрасывает ее ключевой кеш. Производительность будет отстой.
  • Когда вам нужно изменить схему, вам нужно будет выполнить одну операцию ALTER TABLE для каждого пользователя, что будет лишней болью.
  • Поиск чего-либо для конкретного пользователя будет включать ужасный запрос UNION между всеми или многими пользователями. таблицы
  • Будет сложно правильно построить ограничения внешнего ключа, так как у вас больше не будет единой таблицы со всеми идентификаторами пользователей

Почему вы уверены, что производительность будет хорошей? Вы это тестировали?

8
ответ дан 3 December 2019 в 01:24
поделиться

Чтобы дать прямой ответ на ваш вопрос: техническое обслуживание будет снижать энтузиазм с той же скоростью, с которой новые пользователи регистрируются на вашем сайте. Не уверен, какой язык / фреймворк вы используете для своего сайта, но на данном этапе лучше всего поискать несколько небольших примеров на нем. Мы предполагаем, что в каждом примере, который вы найдете, каждый новый пользователь получает одну запись в таблице, а не таблицу в базе данных.

5
ответ дан 3 December 2019 в 01:24
поделиться
Другие вопросы по тегам:

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