У меня есть онлайн-сервис (онлайн-тренажер словарного запаса). У каждого пользователя есть свой словарный запас.
Теперь я не уверен, как мне структурировать мою базу данных Mysql.
Насколько я знаю, у меня есть разные возможности:
все в одной таблице (MyISAM): я храню весь словарь в одной большой таблице MyISAM и добавляю столбец «идентификатор пользователя», чтобы идентифицировать словарь каждого пользователя.
у каждого пользователя есть своя таблица (MyISAM): каждый раз, когда создается пользователь, программа добавляет таблицу с именем вроде "vocabulary_{userid}", где {userid} должен связать таблицу с пользователем.
все в одной таблице (InnoDB): как в первом пункте, но с InnoDB вместо MyISAM.
Проблема в том, что одна большая словарная таблица может содержать до 100 миллионов строк. С MyISAM проблема в том, что каждый запрос блокирует всю таблицу. Итак, я предполагаю, что если в сети много пользователей (и они отправляют много запросов), таблица может быть сильно заблокирована. А с InnoDB я просто не уверен, является ли это хорошим решением, поскольку у меня довольно много команд SELECT, UPDATE и INSERT.
Я надеюсь, что кто-нибудь может мне помочь. Заранее спасибо.