Что нужно учитывать при выборе между MySQL и Amazon SimpleDB для приложения RoR?

StackOverflow https://stackoverflow.com/questions/163275

Вопрос

Я только начинаю исследовать возможность использования сервиса Amazon SimpleDB в качестве хранилища данных для приложения RoR, которое я планирую создать. Мы будем использовать EC2 для веб-сервера и планировали также использовать EC2 для серверов MySQL. Но теперь вопрос, почему бы не использовать SimpleDB?

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

Мне любопытно, что думают сообщества SO по этому поводу.

Это было полезно?

Решение

Библиотека Ruby SimpleDB не такая полная, как ActiveRecord (адаптер по умолчанию для Rails DB), поэтому многие функции, к которым вы привыкли, не будут доступны.

С другой стороны, он не имеет схемы, масштабируется и хорошо работает с ec2.

Если вы собираетесь делать такие вещи, как полнотекстовый поиск в своем приложении, тогда SimpleDB может оказаться не лучшим выбором, придерживайтесь AR + sphinx.

Другие советы

Ну, учитывая, что простая БД не использует SQL или даже не имеет таблиц, это означает, что это совершенно другой зверь, чем MySQL и другие вещи на основе SQL ( http://aws.amazon.com/simpledb/ ). Нет никаких ограничений, триггеров или объединений. Удачи.

Вот один из способов его запуска и запуска: http://developer.amazonwebservices.com/connect/entry.jspa?externalID= 1242 (через http://rubyforge.org/projects/aws-sdb/ ) р>

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

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

" Приложение (в случае успеха) должно быть очень масштабируемым с точки зрения количества поддерживаемых пользователей, серьезно, что описывает половину Интернета. Это «в случае успеха» часть, это действительно вопрос. Просто сконцентрируйтесь на создании приложения быстро и легко. Самый простой способ сделать это - просто использовать ROR, так сказать, из коробки. Соедините его с базой данных, используйте ActiveRecord и создайте что-нибудь интересное для пользователей.

На самом деле, я пойду дальше и скажу, что EC2 довольно дорог для всегда на серверах. Разверните его на Slicehost или другом размещенном решении, а затем перенесите его в EC2, если это необходимо для поддержки спроса.

Я сам очень заинтересован в этой теме. Прямо сейчас я нахожусь на высоком уровне облачных вычислений, поэтому я бы сказал, пойти с SimpleDB, поскольку он, вероятно, будет лучше масштабироваться в том смысле, что у вас будет высокая доступность, но это только мои мысли на данный момент. Еще не из опыта.

Редактировать. Это правда, что SimpleDB не имеет нормальных функций, а "нормальных" базы данных, но это должно сработать, если вам нужен только простой слой CRUD для работы, как в моем случае

Существует библиотека под названием SimpleRecord , которая представляет собой замену ActiveRecord, но использует SimpleDB в качестве своей внутреннее хранилище данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top