Всегда ли базы данных - это решение для хранения веб-данных? - PullRequest
6 голосов
/ 18 января 2010

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

Хотя у меня есть совет от моего друга, что использование баз данных должно быть более обширным, чем я планировал. Он верит в хранение почти всех данных в базах данных, где я считаю, что базы данных наиболее удобны в отношении, возможно, пользовательских данных (просто крошечных фрагментов данных), а также данных содержимого страницы и тому подобного (всего, что не является просто крошечными фрагментами данных) в статических файлах - без каких-либо знаний, чтобы основать это предположение.

  • Что было бы лучшим решением? Минимум данных в базах данных или столько, сколько я могу найти способ эффективно хранить в них?
  • Есть ли разница в производительности между использованием статических файлов и баз данных?
  • Будет ли лучшее решение зависеть от общего трафика сайта?

Я собираюсь использовать комбинацию PHP и MySQL.

Ответы [ 7 ]

4 голосов
/ 18 января 2010

Если вы хотите иметь возможность искать конкретные данные по нескольким параметрам, то вам действительно нужно использовать базу данных. Язык SQL предлагает вам предложение WHERE именно для этого. Кроме того, всякий раз, когда данные должны быть созданы и обновлены, база данных является наилучшим выбором, поскольку она обеспечивает ограничения для обеспечения уникальности данных в определенной степени. Также отношения между данными лучше всего управляются базой данных (с использованием внешних ключей и т. Д.).

Например, профиль пользователя лучше всего хранить в базе данных. Также контролируемые пользователем данные должны храниться в базе данных. С другой стороны, файлы include / template на стороне сервера лучше всего хранить как обычные файлы в файловой системе локального диска сервера, поскольку в них нет необходимости искать. Вы можете в конечном итоге сохранить имена файлов в базе данных, если вы хотите "связать" их с некоторой дополнительной (мета) информацией (например, меню / подменю). То же самое относится и к двоичным файлам (изображениям, загрузкам и т. Д.), Вы не хотите хранить их в базе данных, если вы не хотите (чрезвычайно) высокой степени переносимости.

3 голосов
/ 18 января 2010

Базы данных - не единственное средство постоянного хранения данных, они просто самые распространенные.

Существуют механизмы документирования / ведения блогов, которые вообще не используют базы данных. Когда страница создается, изменяется или комментируется статический HTML-файл создается или изменяется. Например, Подвижный тип .

Точно так же вы можете иметь системы хранения в памяти, где, если система выключена, данные в памяти просто восстанавливаются. Или содержимое памяти сбрасывается, затем восстанавливается, и база данных не используется. Обычно это делается в системах с чрезвычайно высокой пропускной способностью или требует очень низкой задержки (микросекундный уровень).

На ваш вопрос действительно невозможно ответить, потому что ответ на все ваши вопросы - «это зависит», и вы, вероятно, можете заставить его работать, как бы вы это ни делали.

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

PHP и MySQL - хороший выбор.

2 голосов
/ 18 января 2010

База данных - это правильное место для хранения вещей, которые являются строго данными. Плоские файлы просто не могут быть проиндексированы с той же скоростью, что и данные в базе данных. С другой стороны, настройка базы данных потребует дополнительного обучения.

Двоичные данные, такие как фотографии, не так хороши в базах данных.

0 голосов
/ 28 января 2010

На мой взгляд - вам нужна причина не хранить данные в базе данных. | Но я думаю, вам также следует учитывать нереляционные базы данных, такие как хранилище данных Google http://code.google.com/appengine/docs/python/datastore/ или другие подобные вещи.

0 голосов
/ 18 января 2010

Mysql является одной из распространенных баз данных с целостностью данных. Если вы планируете хранить большие данные, лучше всего использовать mysql. Безопасность также следует учитывать при использовании базы данных. Mysql очень безопасен и прост в использовании, вы также можете искать во всей сети некоторые лучшие документы и примеры.

0 голосов
/ 18 января 2010

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

0 голосов
/ 18 января 2010
  • Я бы сказал: все в базе данных. Базы данных оптимизированы для такого рода вещей. Большинство программ для ведения блогов также используют базы данных для контента, это безопасно. Редактировать: о, бинарные файлы действительно лучше, чем файлы. Но также MySQL может справиться с ними безопасно. Если у вас есть как 1 фотография, то все в порядке, чтобы сохранить ее в базе данных (так как ее легче поддерживать), но если вы разместите, скажем, 10.000 фотографий: используйте файлы вместо этого и сохраняйте ссылки на файлы в базе данных (их местоположение, и др.).
  • Абсолютно: базы данных снова оптимизированы. Внутри базы данных используются файлы, но вам больше не нужно об этом заботиться.
  • База данных MySQL абсолютно подходит для общего трафика сайта.

PHP и MySQL - хороший выбор.

...