Одна база данных, которая имеет много элементов против многих баз данных, которые создаются динамически - PullRequest
3 голосов
/ 14 февраля 2012

Я новичок в MySQL.

Я создаю некоторые веб-сервисы с использованием MySQL, но я не уверен, как лучше всего использовать базу данных.

Одна - это та база данных, которая содержит много элементов и непрерывно создает строки после запроса.Еще один делает динамически базу данных БД.

База данных состоит из нескольких вопросов для каждого пользователя, и количество вопросов не фиксировано.

1 Ответ

1 голос
/ 14 февраля 2012

Динамическое создание новых таблиц в базе данных - это хорошо известный антипаттерн .

С одной стороны, это фактически усложняет кодирование, так как вам нужно учитывать динамические имена таблиц вquery.

Во-вторых, и, что еще важнее, это может быть крайне пагубно для производительности БД.В зависимости от того, какой механизм хранения вы используете, при каждом запросе к таблице MySQL необходимо открывать от 1 (InnoDB) до 3 (MyISAM) файлов на диске.Это создаст большую нагрузку на вашу файловую систему, когда вам потребуется запросить много таблиц за короткое время.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...