
Глава 22 · Веб-разработка с Python
PostgreSQL, MySQL/MariaDB и SQLite: основные различия
Эти СУБД различаются архитектурой, возможностями и требованиями к эксплуатации — выбор зависит от требований проекта.
SQLite — не единственная реляционная СУБД. Разберём, чем от неё и друг от друга
отличаются два широко используемых клиент-серверных варианта.
PostgreSQL
PostgreSQL — объектно-реляционная СУБД с клиент-серверной архитектурой: приложение подключается к отдельно запущенному серверу PostgreSQL по сети. Известна широким набором встроенных типов данных и расширяемостью.
MySQL
MySQL — реляционная клиент-серверная СУБД, одна из самых распространённых в веб-разработке.
MariaDB
MariaDB — отдельная реляционная СУБД, исторически возникшая как форк MySQL и во многом остающаяся с ним совместимой.
SQLite
SQLite — встраиваемая реляционная СУБД: она работает как библиотека внутри процесса приложения, без отдельного сервера (раздел 22.23).
MySQL и MariaDB — не взаимозаменяемые синонимы
MariaDB возникла как форк MySQL и во многом остаётся с ним совместимой, но это два отдельных проекта с собственной историей разработки — они не идентичны и не всегда развиваются синхронно. В документации и в вакансиях их иногда упоминают вместе («MySQL/MariaDB»), но для конкретного проекта стоит уточнять, какая именно из двух систем используется.
Выбор между PostgreSQL, MySQL/MariaDB и SQLite почти никогда не сводится к «какая из
них лучше в целом» — обычно это вопрос требований конкретного проекта: сколько серверов
приложения будут писать в базу одновременно, какие возможности SQL нужны, что уже
используется в команде и в её опыте, как будет устроено развёртывание. Ни одно из этих
решений не является универсально правильным по умолчанию.
Официальная документация: PostgreSQL,
MySQL,
MariaDB,
SQLite.