Sqlite или MySql? Как решить?

Какие-нибудь хорошие эмпирические правила о том, как решить, какой из них использовать?

И если вы возьмете базу данных Sqlite, и ожидается, что система "станет намного больше", как решить, придерживаться ее или перейти на MySql?

Ответ 1

Их набор функций совсем не то же самое. Sqlite - это встроенная база данных, которая не имеет сетевых возможностей (если вы не добавите их). Поэтому вы не можете использовать его в сети.

Если вам нужно

  • Доступ к сети - например, доступ с другой машины;
  • Любая реальная степень concurrency - например, если вы считаете, что хотите запустить сразу несколько запросов или запустить рабочую нагрузку с множеством выборок и несколькими обновлениями, и хотите, чтобы они прошли гладко и т.д..
  • много использования памяти, например, для буферизации частей вашей базы данных 1Tb в 32G памяти.

Вам нужно использовать mysql или некоторые другие серверные РСУБД.

Обратите внимание, что MySQL не единственный выбор, и есть много других, которые могут быть лучше для новых приложений (например, pgSQL).

Sqlite - очень, очень приятная часть программного обеспечения, но он никогда не претендовал на любые из этих действий, которые делают серверы РСУБД. Это небольшая библиотека, которая запускает SQL на локальных файлах (с помощью блокировки для обеспечения того, чтобы несколько процессов не вставляли файл вверх). Это действительно хорошо протестировано, и мне это очень нравится.

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

Ответ 2

Команда sqlite опубликовала статью, в которой объясняется когда нужно использовать SQL файл, который отлично читается. В принципе, вы хотите избежать использования sqlite, когда у вас много писем concurrency, или нужно масштабировать до терабайт данных. Во многих других случаях sqlite является удивительно хорошей альтернативой "традиционной" базе данных, такой как MySQL.

Ответ 3

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

Вы обязательно должны пойти с MySQL или PostgreSQL.

Если это для проекта с одним человеком, SQLite будет проще настроить, хотя.