SQLite — компактная встраиваемая СУБД. Исходный код библиотеки передан в общественное достояние.
Слово «встраиваемый» (embedded) означает, что SQLite не использует парадигму клиент-сервер, то есть движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а представляет собой библиотеку, с которой программа компонуется, и движок становится составной частью программы.
Таким образом, в качестве протокола обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа.
Основные изменения:
- Улучшения в CLI:
- Добавлена возможность использования неименованных каналов вместо имени файла в команде ".read".
- В команду ".dump" добавлены опции "--data-only" и "--nosys".
- В команду ".schema" добавлена опция "--nosys".
- В команде ".import" обеспечена корректная обработки имён таблиц в кавычках.
- В CLI встроена функция "generate_series(START,END,STEP)".
- В команде .databases обеспечен показ состояния каждого файла с БД.
- Добавлен параметр командной строки "--tabs" для установки режима вывода с разделением символами табуляции.
- В планировщике запросов улучшено прогнозирование ресурсов при обработке оператора DISTINCT. Уменьшено число перемещений по таблице при обработке операций UPDATE или DELETE с использованием многостолбцовых индексов, не все столбцы в которых охватывает запрос.
- Для оптимизации поиска в многостолбцовых индексах при наличии ограничений выборки оператором IN задействован новый опкод OP_SeekScan.
- Реализована возможность использования команд BEGIN IMMEDIATE и BEGIN EXCLUSIVE с БД, подключёнными в режиме только для чтения.
- В движке полнотекстового поиска улучшена поддержка индексов trigram.
- Повышена производительность примитивов блокировки WAL-лога при наличии сотен соединений к файлу с БД.
- Добавлен псевдоним SQL-функции "substr()" - "substring()" для совместимости с SQL Server.