Что это
SQLite — это встраиваемая библиотека, которая реализует автономный, бессерверный SQL-движок с нулевой конфигурацией. PostgreSQL — полнофункциональная объектно-реляционная СУБД, работающая по модели клиент-сервер.
| Параметр | SQLite | PostgreSQL |
|---|---|---|
| Архитектура | Бессерверная, встраиваемая | Клиент-серверная |
| Типизация | Динамическая (Manifest typing) | Строгая статическая |
| Конкурентность | Один писатель, много читателей | MVCC (многоверсионность) |
| Хранение | Один файл на диске | Множество файлов в каталоге данных |
| Сетевой доступ | Нет (только файловый доступ) | Да (TCP/IP, Unix sockets) |
| Расширяемость | Ограничена (C-extensions) | Высокая (PL/pgSQL, Python, Rust) |
Производительность
SQLite показывает высокую скорость на простых операциях чтения/записи в рамках одного процесса. В режиме PRAGMA journal_mode=WAL она способна обрабатывать до 50 000+ вставок в секунду на SSD. Однако при росте конкурентных записей возникают блокировки DATABASE IS LOCKED. PostgreSQL использует MVCC, что позволяет одновременно читать и записывать данные без взаимных блокировок. PG эффективнее на сложных JOIN-запросах и аналитике благодаря параллельному выполнению планов запросов и JIT-компиляции.
Конфигурация и сложность
SQLite не требует установки и администрирования. Достаточно подключить библиотеку и указать путь к файлу: sqlite3 mydata.db. PostgreSQL требует настройки postgresql.conf и pg_hba.conf. Важные параметры для тюнинга: shared_buffers, work_mem и maintenance_work_mem. Для работы PG необходим выделенный процесс и управление правами доступа пользователей.
Когда выбрать что
- SQLite: мобильные приложения (Android/iOS), IoT-устройства, формат файлов для десктопного ПО, кэширование данных в CI/CD пайплайнах, локальная разработка.
- PostgreSQL: высоконагруженные веб-сервисы, системы с множеством одновременных пользователей, аналитические платформы, проекты с геоданными (через PostGIS).
Стоимость / лицензия
SQLite находится в общественном достоянии (Public Domain), что позволяет использовать её в любых целях без ограничений. PostgreSQL распространяется под лицензией PostgreSQL License (аналог MIT/BSD), что также гарантирует бесплатное коммерческое использование и модификацию кода.
Экосистема и интеграции
SQLite встроена в стандартные библиотеки Python, PHP, Android. PostgreSQL обладает огромным количеством внешних инструментов: pgAdmin, DBeaver, расширениями для шардинга (Citus) и временных рядов (TimescaleDB). PG поддерживает сложные типы данных: JSONB, массивы, геометрические типы и полнотекстовый поиск.
Вердикт
Выбирайте SQLite, если приоритет — простота развертывания и работа с данными внутри одного приложения. Выбирайте PostgreSQL, если требуется масштабируемость, сетевой доступ, высокая конкурентность и строгая целостность данных в распределенной среде.