Какие базы данных я должен использовать для операций «преимущественно однократная запись / чтение много раз»? - PullRequest
1 голос
/ 17 августа 2010

Я создаю приложение, которое должно запрашивать много данных, которые записываются один раз и больше не изменяются.Должен ли я использовать MySQL для этого или я должен использовать что-то вроде SimpleDB или BigTable?(Мне нужно написать один раз, прочитать много раз)

Спасибо.

Редактировать: Я хочу использовать Heroku, большой для меня больше, чем 5 МБ.«Тысячи строк» ​​занимают более 5 МБ.Вот почему мне интересно, стоит ли мне использовать CouchDB, SimpleDB или MongoDB, чтобы не платить 15 долларов, которые взимает Heroku.Предложения по преодолению этого?Спасибо всем за комментарии!

Ответы [ 5 ]

3 голосов
/ 17 августа 2010

Что означает «много данных»?Тысячи, миллионы, миллиарды строк?Сколько и каких столбцов в строке?Будете ли вы использовать много объединений или простых выборок?

Если ваши таблицы простые или вам нужно использовать сложные объединения, я бы выбрал любой знакомый вам SQL.

Если ваша структура сложнаяи если база данных, ориентированная на документы, подойдет вам, я бы выбрал MongoDB (предпочтительно) или CouchDB.

Редактировать: Согласно вашему комментарию - тысячи строк не так уж много.Используйте свою любимую базу данных и установите столько кеша, сколько нужно (узнайте больше о необходимом объеме кеша или начните новую тему).Или используйте Memcached, но я предлагаю использовать кеш базы данных, так как он эффективен и безболезнен для вас.Гуг удачи человек!

1 голос
/ 18 августа 2010

Количество данных у вас крошечное. Любая СУБД справится с несколькими тысячами строк. Я предлагаю вам сначала взглянуть на одну из популярных СУБД SQL - например, MySQL, о которой вы уже упоминали. Вам нужно сделать выбор, основываясь на функциональных требованиях, а не заботиться о размере данных.

1 голос
/ 17 августа 2010

В качестве «записи один раз, чтения много раз» хорошим вариантом является ненормализованная база данных (которая не тратит циклы на объединения и т. Д.).

Итак, вы должны спроектировать свои таблицы так, чтобы эти операции чтения выполняли минимальное количество операций ввода-вывода и соединений. Вы можете сделать это с любой базой данных. Это структура ваших таблиц, которая имеет значение.

AFAIK, SimpleDB и BigTable являются распределенными базами данных и предлагают очень хорошие скорости запросов, если ваши пользователи распределены географически (таким образом, минуя задержки в сети). Они не дадут большого преимущества, если задержка ввода / вывода не является узким местом.

1 голос
/ 17 августа 2010

Важнее, чем выбранный вами движок базы данных, является структура вашей таблицы. Вы должны прочитать о структуре базы данных OLAP. Еще одним соображением является язык, на котором вы пишете, убедитесь, что есть хорошая поддержка API базы данных, которую вы хотите использовать. CouchDB был бы хорош, поскольку у него очень низкие накладные расходы из-за отсутствия отношений / транзакций.

0 голосов
/ 17 августа 2010

Я думаю, вы должны использовать базу данных без транзакций и документов, такую ​​как MongoDB или CouchDB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...