Всегда ли базы данных являются решением в веб-хранилище данных?
У меня нет никакого опыта работы с базами данных, но я намерен изучить их и использовать в веб-проекте, который я планирую.
Хотя, у меня есть совет от моего приятеля, что использование баз данных должно быть гораздо более широким, чем я планировал. Он верит в сохранение почти всех данных в базах данных, где я нахожу, что базы данных наиболее удобны в отношении, возможно, пользовательских данных (просто крошечных фрагментов данных), данных о содержимом страниц и т. П. (Все, что не является просто очень крошечными фрагментами данные) в статических файлах - без каких-либо знаний, на которых можно было бы основываться на этом предположении.
- Какое было бы лучшее решение? Минимум данных в базах данных или столько, сколько я могу найти способов эффективно хранить в них?
- Существует ли разница в производительности между использованием статических файлов и баз данных?
- Будет ли лучшее решение зависеть от общего трафика сайта?
Я намерен использовать комбинацию PHP и MySQL.
7 answers
Если вы хотите иметь возможность искать конкретные данные на основе нескольких параметров, то вам действительно нужно использовать базу данных. Язык SQL, а именно предлагает вам WHERE
пункт именно для этого. Кроме того, всякий раз, когда необходимо создавать и обновлять данные, база данных является лучшим выбором, поскольку она предоставляет ограничения для обеспечения уникальности данных в определенной степени. Также отношениями между данными лучше всего управлять с помощью базы данных (с использованием внешних ключей и и так далее).
Например, профиль пользователя лучше всего хранить в базе данных. Также контролируемый пользователем ввод должен храниться в базе данных. С другой стороны, файлы включения/шаблонов на стороне сервера лучше всего хранить как обычные файлы в файловой системе локального диска сервера, потому что в этом нет необходимости искать. Вы можете в конечном итоге сохранить имена файлов в базе данных, если хотите "связать" их с некоторой дополнительной (мета) информацией (например, меню/подменю). То же самое относится и к двоичным файлам (изображениям, загрузки и т.д.), вы не хотите, чтобы они были в базе данных, если только вам не нужна (чрезвычайно) высокая степень переносимости.
Базы данных не являются единственным средством постоянного хранения данных, они просто наиболее распространены.
Существуют механизмы документооборота/ведения блогов, которые вообще не используют базы данных. Когда страница создается, изменяется или комментируется, создается или изменяется статический html-файл. Например, Подвижный тип.
Аналогично, у вас могут быть системы хранения исключительно в памяти, где, если система выключена, данные в памяти просто восстанавливаются. Или содержимое памяти сбрасывается затем восстанавливается, и база данных не задействована. Обычно это делается в системах с чрезвычайно высокой пропускной способностью или требующих чрезвычайно низкой (микросекундный уровень) задержки.
На ваш вопрос на самом деле нельзя ответить, потому что ответ на все, что вы спросили, - "это зависит", и вы, вероятно, сможете заставить его работать, как бы вы это ни делали.
Я скажу так: не слишком заботьтесь о производительности, пока у вас действительно не возникнет проблема. Большинство проблем с производительностью, с которыми вы столкнетесь, вероятно, будут сводитесь к индексам и первичным ключам в базе данных.
PHP и MySQL - прекрасный выбор.
База данных - это подходящее место для хранения вещей, которые являются строго данными. Плоские файлы просто не могут индексироваться почти с той же скоростью, что и данные в базе данных. С другой стороны, настройка базы данных потребует большего заработка на обучении.
Двоичные данные, такие как фотографии, не так хороши в базах данных.
- Я бы сказал: все, что есть в базе данных. Базы данных оптимизированы для таких вещей. Большинство программ для ведения блогов также используют базы данных для контента, это безопасно. Редактировать: о, двоичные файлы действительно лучше в качестве файлов. Но также MySQL может безопасно обрабатывать их. Если у вас есть 1 фотография, ее можно хранить в базе данных (так как ее проще поддерживать), но если вы размещаете, скажем, 10 000 фотографий: вместо этого используйте файлы и сохраняйте ссылки на файлы в базе данных (их местоположение, и т.д.).
- Абсолютно верно: базы данных, опять же, оптимизированы. Под капотом база данных использует файлы: но вам больше не нужно беспокоиться об этом.
- База данных MySQL абсолютно подходит для общего трафика сайта.
PHP и MySQL - хороший выбор.
Кроме того, если для обработки данных требуются транзакции, базы данных почти всегда являются единственными хорошими решениями.
Mysql является одной из распространенных баз данных с целостностью данных. Если вы планируете хранить большие данные, лучше всего использовать mysql. Безопасность также следует учитывать при использовании базы данных. Mysql намного безопасен и прост в использовании, вы также можете искать по всей сети лучшую документацию и примеры.
На мой взгляд - вам нужна причина "нет" для хранения данных в базе данных. |Но я думаю, что вам также следует рассмотреть базы данных, не связанные с отношениями, такие как хранилище данных Google http://code.google.com/appengine/docs/python/datastore / или другие подобные вещи.