Преимущества и т. Д. Использования MySQL над SQLite (RoR) - PullRequest
1 голос
/ 25 июля 2010

Я сейчас создаю веб-приложение для своей компании и по какой-то причине не могу заставить MySQL работать на моем Mac с моей установкой Ruby (OSX 10.5).SQLite работает нормально, поэтому было бы проблемой использовать SQLite сейчас, чтобы я мог поработать над этим, а затем просто изменить свой файл database.yml, чтобы он указывал на базу данных mySQL при развертывании (при условии, что я перезапущу миграции и тому подобное)?

Кроме того, каковы преимущества / недостатки использования mySQL по сравнению с SQLite в приложении RoR?В прошлом я всегда использовал по умолчанию mySQL, но никогда не изучал SQL напрямую (всегда через ActiveRecord) и никогда не задумывался о разнице.

Ответы [ 4 ]

4 голосов
/ 25 июля 2010

Преимущества MySQL / PostrgreSQL / etc

Плюсы

  • Более строгая типизация данных, что означает более чистые данные
  • Возможность хранить больше данных
  • Масштабирование лучше для больших наборов данных
  • Пространственная поддержка (например, GPS)
  • Полнотекстовый поиск (FTS)

Минусы

  • Более строгая типизация данных означает, что данные будут проверены, неверные данные приведут к ошибкам
  • Неподходящий кандидат (если возможно) для устройств с ограниченными ресурсами (iPhone, Blackberry, iPad и т. Д.)

Я бы выбрал PostgreSQL v8.4 + поверх MySQL, если бы у меня был выбор.Возможности MySQL отстают от остальных основных альтернатив баз данных SQL.

2 голосов
/ 25 июля 2010

Самая большая проблема с производительностью, с которой вы можете столкнуться - это блокировки таблиц. К сожалению, SQLite не имеет блокировки на уровне строк. Поэтому, если ваше приложение будет запускать несколько процессов / потоков (как у нескольких веб-пользователей), вполне вероятно, что некоторые потоки не смогут выполнять операции SQL. По этой причине я бы пошел с MySQL - или, возможно, Postgresql.

2 голосов
/ 25 июля 2010

Не должно быть никаких проблем, поскольку MySQL должен иметь расширенный набор возможностей SQLite, и, как указал @Sean, производительность должна только увеличиваться.Просто постарайтесь убедиться, что вы не используете что-то слишком специфичное для SQLite (я в основном парень по SQL Server и Oracle, поэтому не знаю, что это будет, если вообще что-нибудь).Помните, что "S" в SQL означает структурированный, а не стандартный;)

Пол.

1 голос
/ 25 июля 2010

SQLite идеально подходит для настольных ПК или смартфонов («встроенное» использование). Однако, если вы планируете создавать веб-приложение, вам настоятельно рекомендуется использовать не встроенную DMS, такую ​​как MySQL. Преимуществ бесчисленное множество, таких как сторонние приложения для дизайна и анализа, производительность и т. Д ...

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