Sqlite или MySql? Как решить? [закрыто]


94

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

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


1
Рассмотрим FirebirdEmbedded, это очень мощная смесь двух.
Стефан Штайгер

1
Голосование за закрытие слишком широкое. Возможный дубликат был удален: stackoverflow.com/questions/3630/sqlite-vs-mysql
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

10
Сейчас он широко распространен, но, когда он был задан, такой вопрос был приемлемым или, по крайней мере, терпимым. Надеюсь, что вопрос не удален, как и возможный дубликат, чтобы другие могли еще прочитать обсуждение и рекомендации.
Mawg просит восстановить Монику

6
Какая жалость, что те вопросы, которые имеют большое влияние и видимость (посмотрите на количество голосов ниже), закрываются «мониторами» этого сайта. Что делает весь процесс мониторинга и выбор мониторов весьма сомнительным.
francogrex

2
Стандарты, ценности и цели сайта менялись с годами. "Преимущественно основанное на мнении" больше не приемлемо. Если бы я хотел спросить об этом сегодня, я бы спросил на softwarerecs.stackexchange.com , а не здесь, и перечислил бы свои требования к базе данных и получил бы рекомендации. Я понимаю, почему мой вопрос был закрыт, но я все еще испытываю ностальгию по тому времени, когда у нас был тег книг , и слово «лучший» в названии не означало немедленного закрытия: - / YMMV
Мавг говорит, что нужно восстановить Монику

Ответы:


103

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

Если тебе нужно

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

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

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

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

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


Так что в основном sqllite является альтернативой файлам доступа ms.
dvdmn

2
Эти три пункта в точности совпадают с тем, о чем говорит Ричард Хипп: youtu.be/Jib2AmRb_rk?t=1693
Чиро Сантилли 郝海东 冠状 病 六四 事件

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

57

Команда sqlite опубликовала статью, объясняющую, когда использовать sqlite, которую хорошо читать. По сути, вы хотите избежать использования sqlite, когда у вас много одновременной записи или вам нужно масштабировать до терабайтов данных. Во многих других случаях sqlite - удивительно хорошая альтернатива «традиционной» базе данных, такой как MySQL.


11

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

Вам обязательно стоит выбрать MySQL или PostgreSQL.

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


Для простоты у меня всегда есть одно программное обеспечение, которое является единственным пользователем, которому разрешен доступ к базе данных, даже для сетевых приложений, которые используют базу данных MySql, но, как правило, особенно для Sqlite.
Mawg требует восстановить Монику

10

Мои несколько центов на предыдущие отличные ответы. сайт www.sqlite.org работает с базой данных sqlite. Вот ссылка, по которой автор (Ричард Хипп) отвечает на аналогичный вопрос.


1
Спасибо за ссылку, тот же автор продолжает свою собственную рабочую среду, которую он тестировал на Athlon 1600. 1 ГБ ОЗУ. 5400 об / мин IDE диск. Redhat 7.3. Он заключает: «Теперь я считаю, что SQLite подходит для использования в качестве основной базы данных на веб-сайтах, которые получают до 1 миллиона посещений в день».
Rutrus
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.