SQLite 3.51: Новые возможности и улучшения производительности
16:51, 07.11.2025
Долгожданный релиз SQLite 3.51 уже доступен, предлагая множество новых функций и улучшений. Эта легковесная база данных, написанная на C и распространяемая как общественное достояние, продолжает предоставлять мощные инструменты для разработчиков без каких-либо лицензионных ограничений.
Новые функции и расширения
SQLite 3.51 привносит несколько интересных новшеств в API. В частности, в заголовочном файле sqlite3.h появились новые макросы: SQLITE_SCM_BRANCH, SQLITE_SCM_TAGS и SQLITE_SCM_DATETIME. В работе с JSON добавлены новые функции jsonb_each() и jsonb_tree() для формата JSONB. Кроме того, SQLite включает два расширения — carray и percentile — в свою амальгамацию. Эти расширения отключены по умолчанию и могут быть активированы при сборке с помощью соответствующих флагов.
Улучшения в CLI и API
Командный интерфейс (CLI) в SQLite также был улучшен для удобства пользователей. Например, команда .timer теперь отслеживает время с точностью до микросекунд. Команда .width теперь ограничивает ширину столбцов до 30 000 символов. Разработчики оценят новую команду .imposter, которая позволяет читать содержимое индексов как таблицы. API также получил улучшения, включая новые функции, такие как sqlite3_db_status64() и sqlite3changeset_apply_v3() для лучшего управления состоянием базы данных и сессиями.
Оптимизация производительности
SQLite 3.51 приносит ряд оптимизаций для улучшения производительности. Уменьшена нагрузка на процессор при операциях чтения, а также система теперь раньше обнаруживает JOIN-операции с таблицами, которые не возвращают строк. Скаляры подзапросов, которые не влияют на конечный результат, теперь исключаются, что ускоряет выполнение запросов. Добавлены новые режимы контрольных точек, такие как NOOP для sqlite3_wal_checkpoint_v2(), что позволяет более точно настраивать производительность.
Этот релиз устанавливает новый стандарт для SQLite, предоставляя более эффективную и функциональную базу данных для разработчиков в различных средах.