Small. Fast. Reliable.
Choose any three.

Соответствующее использование для SQLite

SQLite не непосредственно сопоставим с системами базы данных SQL клиент-сервер, такими как MySQL, Oracle, PostgreSQL или SQL Server, так как SQLite пытается решить иную проблему.

Системы базы данных SQL клиент-сервер стремятся осуществить общий репозиторий данных. Они подчеркивают масштабируемость, параллелизм, централизацию и контроль. SQLite стремится обеспечить местное хранение данных для отдельных приложений и устройств. SQLite подчеркивает экономику, эффективность, надежность, независимость и простоту.

SQLite не конкурирует с базами данных клиент-сервер. SQLite конкурирует с fopen().

Ситуации, где SQLite работает хорошо

Ситуации, где RDBMS клиент-сервер может работать лучше

Контрольный список для выбора правильного ядра базы данных

  1. Данные отделены от применения сетью? → client/server

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

    Но SQLite встроен в приложение. Таким образом, если данные находятся на отдельном устройстве требуется высокая пропускная способность сети. Это работает, но это неоптимально. Следовательно, обычно лучше выбрать ядро базы данных клиент-сервер, когда данные находятся на отдельном устройстве

    Nota Bene: В этом правиле "приложение" означает код, который выпускает SQL-операторы. Если "приложение" это сервер приложений и если содержание проживает на той же самой физической машине как сервер приложений, то SQLite мог бы все еще быть соответствующим даже при том, что конечный пользователь далеко в сети.

  2. Многие параллельные писатели? > выбирают клиент-сервер

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

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

  3. Big data? → client/server

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

  4. Что-то еще → выберите SQLite!

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