Всегда ли базы данных являются решением в веб-хранилище данных?


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

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

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

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

Author: Sune Rasmussen, 2010-01-18

7 answers

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

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

 4
Author: BalusC, 2010-01-18 00:42:16

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

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

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

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

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

PHP и MySQL - прекрасный выбор.

 3
Author: cletus, 2010-01-18 00:40:05

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

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

 2
Author: Chuck Vose, 2010-01-18 00:32:53
  • Я бы сказал: все, что есть в базе данных. Базы данных оптимизированы для таких вещей. Большинство программ для ведения блогов также используют базы данных для контента, это безопасно. Редактировать: о, двоичные файлы действительно лучше в качестве файлов. Но также MySQL может безопасно обрабатывать их. Если у вас есть 1 фотография, ее можно хранить в базе данных (так как ее проще поддерживать), но если вы размещаете, скажем, 10 000 фотографий: вместо этого используйте файлы и сохраняйте ссылки на файлы в базе данных (их местоположение, и т.д.).
  • Абсолютно верно: базы данных, опять же, оптимизированы. Под капотом база данных использует файлы: но вам больше не нужно беспокоиться об этом.
  • База данных MySQL абсолютно подходит для общего трафика сайта.

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

 0
Author: Pindatjuh, 2010-01-18 00:33:26

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

 0
Author: sibidiba, 2010-01-18 01:58:49

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

 0
Author: Trez, 2010-01-18 03:15:18

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

 0
Author: David Gruzman, 2010-01-28 15:13:09