1

Я планирую разработать веб-приложение, для которого мне нужно решить «тип» моей системы баз данных. Я планирую разработать веб-приложение в Django/Python.Какую базу данных я должен использовать?

Мое приложение будет содержать только одну таблицу с постоянно растущими (n) миллионами записей и столбцами «k» (1-100). К сожалению, я не контролирую число «k». размер «k» может увеличиваться/уменьшаться с течением времени (между 1-100, хотя). Я не хотел бы иметь компромисс по производительности.

Какую базу данных следует использовать? Мои первоначальные реакции следующим образом:

  • MySQL: Я хотел бы избежать этой опции
  • Redis: Хороший вариант, но (ключ, значение) магазин не соответствует моему счету
  • XML баз данных: Looks хорошо для этой задачи, но дает ли она желаемую производительность?
  • объектно-ориентированный реляционная БД: Я не уверен в этом

Редактировать конкретного требования:

Чтобы выполнить поиск по K-столбцам и извлечение подмножества записей «N». Я планирую предоставить REST api, подобный Twitter или Facebook.

Например, http://api.twitter.com/1/users/show.json?screen_name=Ashton. Если это то, что я планирую реализовать, имя экрана будет одним из столбцов. Точно так же могут быть другие параметры, основанные на других столбцах, таких как user_id, количество друзей и т. Д.

+1

Решение о базе данных должно быть сосредоточено на запросах, которые вы хотите сделать, а не на данных, которые вы хотите сохранить в нем. Запись N записей полей K, постоянно добавляемых в текстовый файл, соответствует требованиям штата, но, без сомнения, это не то, о чем вы просите. Поэтому вы должны перефразировать вопрос и больше рассказать о других операциях, которые вы хотите выполнить. –

+0

@WillHartung Я просто добавил редактирование, основанное на ваших отзывах. Надеюсь, теперь это станет яснее. – Dexter

ответ

2

Похоже, вы можете прийти к этому решению со слишком большим количеством предубеждений. Почему вы хотите избежать MySQL? Это потому, что вы избегаете жесткой схемы?

Redis не похож на подгонку из-за объема данных, но я не думаю, что это имеет какое-то отношение к тому, что это хранилище ключей/значений.

Ваши данные нуждаются в звуке, как довольно текстовый корпус для MongoBD. Вы посмотрели на него?

+0

Да, я бы хотел избежать MySQL из-за жесткой схемы. Redis не подходит, поскольку у него может быть только один ключ для кортежа. Например, (1, 2, 3, 4) будет отображаться как {1: 2,3,4} в Redis. Следовательно, я мог бы запросить только «1». Я требую гибкого запроса на все значения в записи. В приведенном выше примере, 1/2/3/4. Я посмотрю на MongoDB. – Dexter

+1

Причина, по которой я говорил о redis, состоит в том, что я знал, что это основано на неправильном представлении. redis - это _lot_ больше, чем простое хранилище ключей/значений. Я еще не сталкивался с проблемой, но не мог моделировать ее. Он использует одни и те же примитивы для хранения ваших данных как более сложного продукта, он просто не скрывает сложности. Но да, я думаю, вы найдете mongodb, вероятно, лучше всего подходит для вас. Полностью гибкая схема, специальные запросы, впечатляющая скорость. Это хранилище без схемы, вы можете (в основном) запросить, как реляционную базу данных. – menacingly

+0

Выполняя команды по Redis, мне пришлось бы сильно реплицировать мои данные. В любом случае, я посмотрю на MongoDB. Однако, если вы думаете, что я смогу смоделировать свои данные в Redis, я бы с удовольствием посмотрел на него. – Dexter

Смежные вопросы