Как выбрать базу данных для моих целей? Я хочу хранить метаданные файла. - PullRequest
2 голосов
/ 11 февраля 2012

Я создаю веб-приложение, которое требует от меня хранения метаданных о файлах, примерно 15-20 «характеристик» для каждого файла, включая некоторые общие (т. Е. User1 и user2 должны иметь доступ).

Вы бы порекомендовали использовать для этого реляционную базу данных? или одна из более новых и масштабируемых баз данных noSQL - лучший вариант?

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

Не уверен, как это будет работать с реляционной БД с точки зрения производительности (скажем, я пытаюсь найти все файлы, принадлежащие пользователю user1 и предоставленные пользователю user2 с определенным свойством - по сути, мне нужно было бы присоединиться к 3-4. таблицы вместе ... что, вероятно, плохо для производительности?!)

Спасибо за ваш отзыв!

Ответы [ 4 ]

2 голосов
/ 11 февраля 2012

Я не думаю, что соединение 3 или 4 таблиц может привести к снижению производительности.Если вы рассматриваете реляционные решения с открытым исходным кодом, я бы предложил PostgreSQL, который в настоящее время является самой богатой реализацией SQL.Но MySQL тоже будет работать или даже SQLite.Все они имеют приличную производительность.

С другой стороны, если метаданные, которые вам нужно сохранить, будут расширяться в будущем, база данных на основе схемы будет проблемой.В этом случае я бы вместо этого предложил базу данных без схемы (также основанную на документах, NoSQL и т. Д.), Например MongoDB с открытым исходным кодом.С индексами у него также будет отличная производительность запросов.CouchDB - более богатая реализация, но они не уделяют столько внимания скорости.

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

Хранение документов и некоторой информации для них не является сильной стороной баз данных SQL.Я бы не стал выбирать MySQL из-за его лицензии (точнее, из-за его поставщиков данных), а также потому, что вы не можете сказать, что Oracle будет делать с ним в будущем.

Вы ищете NoSQLбаза данных, оптимизированная для хранения документов, чрезвычайно быстрая и простая в настройке (и использовании).Я предполагаю, что он был написан на C ++, а не на Java, и, тем не менее, имеет привязки для .NET и Java.

Я бы сказал, что MongoDB будет идеальным выбором.

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

Я думаю, что реляционная база данных хорошо подходит для этого.Базы данных NoSQL обычно не позволяют легко и гибко запрашивать.Это сила старых добрых баз данных SQL.

0 голосов
/ 11 февраля 2012

Почему бы не использовать vcs, такой как us svn или hg, где вы можете назначать атрибуты файлам? Все зависит от того, что вы хотите сделать с информацией.

...