Rails 2.0: почему бы не использовать sqlite3?

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

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

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

10.12.2008 18:30:28
7 ОТВЕТОВ
РЕШЕНИЕ

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

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

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

а также

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

11
10.12.2008 18:40:35
Они также говорят: «Любой сайт, который получает менее 100 тыс. Обращений в день, должен нормально работать с SQLite. Показатель 100K хитов в день - это консервативная оценка, а не жесткая верхняя граница. Было продемонстрировано, что SQLite работает с 10-кратным количеством трафика ». При этом SQlite подходит для 95% интернет-сайтов.
Niteriter 23.12.2009 15:34:50

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

1
10.12.2008 18:35:52
Конечно, я не использую Rails, но лично я обнаружил, что SQLite гораздо проще в использовании, чем MySQL
Kyle Cronin 10.12.2008 18:47:15

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

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

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

4
10.12.2008 18:47:11

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

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

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

3
10.12.2008 18:57:43

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

0
10.12.2008 19:02:36

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

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

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

2
14.12.2008 08:27:39

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

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

2
5.02.2009 16:28:26