Rails 2.0: почему бы не использовать sqlite3? - PullRequest
7 голосов
/ 10 декабря 2008

Я читал некоторые уроки о том, как начать использовать Rails 2.0.

(Тайм-аут: идея имени гениального сайта, возникшая из опечатки, которую я только что сделал: "tutoRAILS." Извините, вернемся к моему вопросу.)

В большинстве учебных пособий, которые я читал, кажется, рекомендуется использовать MySQL вместо sqlite3. Есть ли причина для этого, например, в плане производительности или чего-то еще? Сейчас я просто тестирую Rails на своем компьютере с использованием InstantRails, и они достаточно хороши, чтобы включить MySQL в свои установки, но я создавал свои экспериментальные приложения с использованием sqlite3. Я пропускаю какой-то серьезный нюанс sqlite3 или это просто общее предпочтение, которое другие имеют для MySQL?

Ответы [ 7 ]

11 голосов
/ 10 декабря 2008

SQLite - это хороший движок, но он по-прежнему в обработке (или настольный) движок. Механизмам процессов присущи недостатки параллелизма, которые делают их принципиально плохим выбором по сравнению с серверными механизмами, такими как MySQL, для веб-сайтов или другими сценариями с возможностью одновременного доступа к множеству записей.

См. Эту страницу на веб-сайте SQLite:
http://www.sqlite.org/whentouse.html

SQLite обычно отлично работает в качестве движка базы данных для веб-сайтов с низким и средним трафиком

и

если ... вы думаете о разделении компонента базы данных на отдельную машину, тогда вам определенно следует рассмотреть возможность использования базы данных клиент / сервер корпоративного класса вместо SQLite.

4 голосов
/ 10 декабря 2008

SQLite - это круто, но у него есть проблемы с производительностью для нескольких одновременных программ чтения и записи.

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

Лично, если я использую независимый от БД уровень для доступа к БД, то легко переключаться с одного на другой, поэтому легко начинать с SQLite и переходить на другой при необходимости.

3 голосов
/ 10 декабря 2008

Я всегда начинаю с SQLite. Если мне нужно создать прототип Rails-проекта, я могу начать работу буквально за короткое время. Постройте некоторые леса, запустите мои миграции, напишите несколько тестов, и я отправлюсь на гонки.

Однако, если и когда проект достигнет точки, в которой вы будете его развертывать, я бы предложил MySQL или PostgreSQL для лучшей производительности.

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

2 голосов
/ 05 февраля 2009

Для чего-то вроде движка блогов на Rails SQLite будет очень хорошо работать даже на довольно больших объемах, потому что все его чтения и очень мало записей. Фактически, большинство ваших обращений будут кэшированными страницами - в зависимости от того, разрешаете ли вы комментарии и насколько активны ваши потоки комментариев, - вам может потребоваться отдельный процесс rails, поскольку ваш веб-сервер будет обрабатывать почти каждый запрос.

С базой данных SQLite каждый процесс rails должен бороться за блокировку файловой системы для файла, чтобы делать записи, так что вы в конечном итоге заблокируете много, если у вас много процессов записи. Можно подумать об этом, подумать о том, сколько у вас будет рельсовых процессов ... если его потребуется более 3-4, то, вероятно, SQLite - не лучший выбор.

2 голосов
/ 14 декабря 2008

Начиная с Rails 2.0, sqlite3 является базой данных по умолчанию, поэтому, безусловно, нет предвзятости. Однако многие руководства по Rails предшествуют Rails 2.0, когда базой данных по умолчанию был MySQL.

Как уже упоминали несколько других, sqlite3 - прекрасная база данных для быстрого и простого запуска и запуска приложения. Для вашей среды разработки Rails у нее есть ноги - она, вероятно, будет работать нормально, даже если ваше приложение становится сложным. Для тестовой среды Rails это также очень хороший выбор - он очень быстрый, и большинство тестов имеют относительно простые требования к базе данных и, как правило, не требуют параллелизма или иным образом сталкиваются с ограничениями sqlite3.

Однако для многих, если не для большинства рабочих веб-сайтов, может потребоваться БД, предназначенная для большего параллелизма - MySQL, Postgres и т. Д.

1 голос
/ 10 декабря 2008

Я думаю, что это в основном вопрос поддержания низкого уровня трения в учебнике. Если вы новичок, я бы порекомендовал MySql только потому, что это будет легче сделать учебник. В противном случае sqlite - это отличное настольное решение.

0 голосов
/ 10 декабря 2008

Обратите внимание, что Sqlite является движком по умолчанию для Camping framework. Имеет смысл, так как оба предназначены для малых и быстрых, а не больших и предприимчивых

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