Что такое SQLite?

SQLite — это встраиваемая реляционная база данных, которая хранит всю информацию в одном файле. Это самая распространенная база данных в мире, используемая в миллиардах устройств от мобильных телефонов до веб-браузеров.

Основные особенности SQLite

  • Нулевая настройка — не требует сервера или конфигурации
  • Один файл — вся база данных в одном файле
  • Кроссплатформенность — работает везде
  • ACID-совместимость — надежные транзакции
  • Малый размер — библиотека менее 1 МБ

Когда использовать SQLite

SQLite идеально подходит для:

  • Прототипирования и разработки
  • Мобильных приложений (iOS, Android)
  • Десктопных приложений
  • Встраиваемых систем и IoT
  • Небольших веб-сайтов (до 100К посещений в день)
  • Локального хранения данных в браузере

Ограничения SQLite

  • Не подходит для высоконагруженных приложений
  • Ограниченная поддержка одновременных записей
  • Нет встроенного управления пользователями
  • Ограниченные возможности репликации

Установка и использование

Для работы с SQLite в Python:

1pip install sqlite3  # встроен в Python
2poetry add sqlite3   # если используешь Poetry

Пример использования:

 1import sqlite3
 2
 3# Создание подключения
 4conn = sqlite3.connect('example.db')
 5cursor = conn.cursor()
 6
 7# Создание таблицы
 8cursor.execute('''CREATE TABLE IF NOT EXISTS users 
 9                 (id INTEGER PRIMARY KEY, name TEXT, email TEXT)''')
10
11# Вставка данных
12cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", 
13               ("Иван", "ivan@example.com"))
14
15conn.commit()
16conn.close()

Альтернативы SQLite

  • PostgreSQL — для больших проектов
  • MySQL — для веб-приложений
  • DuckDB — для аналитических задач
  • LevelDB — для key-value хранения

FAQ

Можно ли использовать SQLite в production?

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

Поддерживает ли SQLite многопользовательский доступ?

SQLite поддерживает одновременное чтение несколькими процессами, но запись может выполнять только один процесс за раз.