The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск СУБД SQLite 3.51

05.11.2025 15:24

Опубликован релиз SQLite 3.51, легковесной СУБД, оформленной в виде подключаемой библиотеки. Код SQLite распространяется как общественное достояние (public domain), т.е. может использоваться без ограничений и безвозмездно в любых целях. Финансовую поддержку разработчиков SQLite осуществляет специально созданный консорциум.

Основные изменения:

  • Добавлены новые JSON-функции jsonb_each() и jsonb_tree(), которые отличаются от ранее доступных функций json_each() и json_tree() тем, что возвращают значение JSONB для данных с типом массив или объект.
  • Код расширений carray и percentile перенесён в базовый файл "sqlite3.c" со встраиваемым кодом SQLite. По умолчанию данные дополнения отключены и требуют указания при сборке параметров "-DSQLITE_ENABLE_CARRAY" и "-DSQLITE_ENABLE_PERCENTILE".
  • Улучшен интерфейс для использования SQLite в скриптах на языке Tcl. В команду "eval" добавлен флаг "-asdict" для выставления строк с использованием типа "dict" вместо "array". Добавлена возможность прерывания пользовательских функций для возвращения значения NULL.
  • Изменения в интерфейсе командной строки:
    • Точность команды ".timer" увеличена до микросекунд;
    • В режимах форматирования "box" и "column" реализована поддержка символов с двойной шириной;
    • Команда ".imposter" теперь может предоставлять в режиме только для чтения imposter-таблицы (позволяют получить доступ к данным в индексе как к таблице), работающие с операцией VACUUM и не требующие запуска с флагом "--unsafe-testing";
    • В утилиту sqlite и команду ".open" добавлена опция "--ifexists".
    • Максимальная ширина строки, выставляемая при помощи команды ".width", ограничена 30000 символов.
  • Внесены оптимизации производительности:
    • Сокращена нагрузка на CPU при фиксации транзакций, ограниченных доступом на чтение;
    • Улучшено определение операций слияния (JOIN), не возвращающих строки из-за того что одна или несколько таблиц не содержит строк;
    • Исключено выполнение скалярных подзапросов, не влияющих на результат;
    • Ускорена работа оконных функций в запросах с выражением "BETWEEN :x FOLLOWING AND :y FOLLOWING" и очень большом значении ":y".
  • Добавлена прагма "PRAGMA wal_checkpoint=NOOP" и функция API sqlite3_wal_checkpoint() для фиксации изменений в WAL-логе
  • В API добавлены функции sqlite3_set_errmsg() и sqlite3_db_status64().
  • В JavaScript/WASM-версии SQLite реализована поддержка сборки в представление WebAssembly с 64-разрядными указателями.
  • Повышена стойкость от повреждения БД в приложениях, снимающих POSIX-блокировки через вызов close().
  • Улучшена поддержка платформы VxWorks.


  1. Главная ссылка к новости (https://www.sqlite.org/release...)
  2. OpenNews: Выпуск СУБД SQLite 3.50
  3. OpenNews: Google использовал большую языковую модель для выявления уязвимости в SQLite
  4. OpenNews: Проект Redka развивает реализацию протокола и API Redis поверх SQLite
  5. OpenNews: Выпуск DuckDB 0.10.0, варианта SQLite для аналитических запросов
  6. OpenNews: Проекты CBS и sqld развивают облачный и серверный варианты SQLite
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64186-sqlite
Ключевые слова: sqlite
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (24) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 16:00, 05/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Хорошая вещь, кормит. Жаль только нет альтер тэйбл для существующей таблицы с позможностью вставить новую колонки между существующими, а только в самый конец
     
     
  • 2.3, Жироватт (ok), 16:05, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А оно таки надо? Нет, реально, учитывая, что порядок колонок в таблице вещь условная и может быть переопределен уже на клиенте (для гуя) или вообще не имеет значения (для ipc)
     
     
  • 3.10, Аноним (10), 16:32, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Оно начинает быть надо у горе программиста уже пятидесятый столбец и он продолжает использовать sqlite. Хотя ему ненужен ни sqlite ни такая большая таблица.
     
  • 2.17, eugener (ok), 17:51, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > только в самый конец

    у оракла также.

     

  • 1.4, Аноним (4), 16:17, 05/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Где можно почитать рекомендации по индексам для sqlite?
     
     
  • 2.13, зоотехник (?), 17:25, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А что не так с индексами?
     
     
  • 3.14, Аноним (4), 17:32, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, если у приложения их нет. На что смотреть? Я вот взял и сделал в sqlitebrowser, время хорошее у чтения, но будто неэффективно теперь? И размер в 2 раза больше.
     
     
  • 4.16, зоотехник (?), 17:36, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А как надо, в два раза меньше? Так не бывает. Индекс практически тоже таблица, только отсортированная и условно с двумя колонками, в одно ключ, в другой номер записи.
     
     
  • 5.18, Аноним (4), 17:53, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А как надо, в два раза меньше? Так не бывает. Индекс практически
    > тоже таблица, только отсортированная и условно с двумя колонками, в одно
    > ключ, в другой номер записи.

    Файл сжимается в 10 раз и будто бы можно поэффективней? Операции с диском не бесплатные. Конечно хотелось бы оптимизировать записи, их и так под терабайт в день и это практически без нагрузки.

     
     
  • 6.20, Аноним (20), 17:57, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Учи структуры данных и реализуй самый лучшей для твоей задачи способ.  Sqlite тебе вот ваще не нужен если проблемы о которых ты говоришь реальны.
     
     
  • 7.23, Аноним (4), 18:05, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Учи структуры данных и реализуй самый лучшей для твоей задачи способ.  
    > Sqlite тебе вот ваще не нужен если проблемы о которых ты
    > говоришь реальны.

    Тут проблема, что для sqlite нет sqlite_top -- пойди угадай, что оптимизировать.

     
  • 6.26, зоотехник (?), 18:29, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если базу можно сжать в 10 раз, то либо неэффективная структура таблиц (много пустого места, либо много одинаковых данных), либо используется ФС с неподходящими настройками (размер сектора) и т.д. Т.е. индексы на это вряд-ли влияют, это следствие, а не причина.
    Как написали выше, разбирайся со структурами данных. Ну или нужна более подходящая для твоей задачи БД, может даже NoSQL.
     
     
  • 7.27, Аноним (4), 18:35, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Там время в таблицах. Т.е. тупо текст миллионы раз повторяющийся.
     
  • 4.30, Илья (??), 18:40, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вроде как sqlite не для больших бд со сложными поисками по индексам?

    Если о таком задумываешься - наверное надо смотреть в сторону postgres или mssql

     
  • 2.21, Аноним (20), 17:59, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот кстати отличный пример никчемности sqlite как базы данных и тех кто её использует. С одной стороны запросы без индекса медленные с другой с индексами база пухнет. И ведь мега умы ведь додумались бы и оставить медленные запросы и так и пользвать в приложении. И ведь у этого юзера ведь так уже где то есть в проде.
     

  • 1.6, Аноним (6), 16:17, 05/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Электрон среди баз данных.
     
     
  • 2.9, Аноним (4), 16:31, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Электрон заменяется на nwjs, а сабж на что?
     
     
  • 3.15, Аноним (15), 17:36, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Firebird
     
     
  • 4.22, Аноним (20), 18:03, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    FoxPro
     
  • 4.24, Аноним (24), 18:12, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А чё сразу не postgres? Между прочим, sqlite встраиваемая.
     
  • 3.19, Аноним (20), 17:54, 05/11/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.25, Аноним (25), 18:27, 05/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чем оно лучше канонического postgresql?
     
     
  • 2.28, Аноним (28), 18:36, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это не вы разраб akonadi?
     
  • 2.29, Аноним (29), 18:38, 05/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Тем же чем и ведро пельменей лучше апельсинового варенья.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру