SQLite 3.45 вже випущено, і це його нові функції

SQLite

SQLite — це легкий механізм баз даних

Випущено версію SQLite 3.45, легкий механізм реляційної бази даних, доступний через мову SQL. На відміну від традиційних серверів баз даних, таких як MySQL або PostgreSQL, його особливість полягає не в тому, щоб відтворювати звичну схему клієнт-сервер, а бути інтегрованим безпосередньо в програми.

Завдяки своїй надзвичайній легкості SQLite є одним із найбільш використовуваних механізмів баз даних у світі. Він використовується в багатьох споживчих програмах, а також дуже популярний у вбудованих системах, включаючи більшість сучасних смартфонів.

Основні нові можливості SQLite 3.45

У представленій новій версії SQLite 3.45 підкреслюється, що Було зроблено основні оновлення функцій SQL, пов'язаний з керуванням даними у форматі JSON. Ці функції були переписано та перенесено до нового внутрішнього формату дерева аналізу JSONB, який є серіалізованим і може зберігатися безпосередньо в базі даних, на додаток до цього оновлення, що дозволяє уникнути необхідності повторного аналізу під час роботи зі значеннями JSON, що значно покращує продуктивність і ефективність запитів із залученням даних у форматі JSON.

У нових версіях функцій генерації JSON реалізовано важливу зміну: тепер вони генерують дані у двійковому форматі JSONB замість текстового. Це являє собою вдосконалення оптимізації та обробки даних JSON у системі.

Крім того, У функцію json_valid() було введено необов’язковий другий аргумент. Цей аргумент дозволяє вказати бітову маску, яка визначає характеристики дійсного JSON. Наприклад, якщо вказати 0x04, об’єкт JSONB буде визнано дійсним. Крім того, якщо вказати 0x01, текст JSON у форматі RFC-8259 вважатиметься дійсним. Опція 0x05 дозволяє розпізнавати обидва варіанти.

За замовчуванням, оптимізацію SQLITE_DIRECT_OVERFLOW_READ увімкнено, що дозволяє читати сторінки переповнення, розмір яких перевищує стандартний розмір сторінки b-дерева, безпосередньо з файлу, минаючи кеш. Однак, якщо ви хочете вимкнути цю оптимізацію під час компіляції, ви можете скористатися параметром "-DSQLITE_DIRECT_OVERFLOW_READ=0".

El Значно покращено планувальник запитів на ефективність оптимізації транзитивних обмежень. Це дозволяє системі запитів краще оптимізувати запити, враховуючи транзитивні обмеження, і покращити здатність ігнорувати індекси, які вважаються низькою якістю під час операції «АНАЛІЗ». Ці вдосконалення допомагають забезпечити оптимальну продуктивність і ефективне виконання запитів до бази даних SQLite.

З іншого боку, у Windows інтерфейс командного рядка було оновлено, щоб покращити відображення вмісту в кодуванні UTF-8. Це забезпечує більш узгоджений і зрозумілий досвід під час взаємодії з базою даних через командний рядок у середовищах Windows. Крім того, було ввімкнено автоматичне виявлення використання CLI під час відтворення сценаріїв ".dump" і внесено необхідні зміни до конфігурацій, таких як ".dbconfig defensive off" і ".dbconfig dqs_dll on", щоб забезпечити безперебійну роботу.

Нарешті, До визначених функцій SQL додано властивість SQLITE_RESULT_SUBTYPE на стороні програми. Це дозволяє викликати sqlite3_result_subtype() із функції для перевірки підтипів аргументів, забезпечуючи більшу гнучкість і можливість перевірки при маніпулюванні даними в програмі.

З інші зміни, які виділяються:

  • FTS5 з опцією tokendata: до віртуальної таблиці FTS5, яка використовується для повнотекстового пошуку, додано опцію tokendata.
  • Режим журналу транзакцій WAL2: Було представлено експериментальні версії SQLite з новим режимом журналу транзакцій під назвою WAL2 ("PRAGMA journal_mode = wal2"). Цей режим використовує два файли wal ("database-wal" і "database-wal2") замість одного, що вирішує проблему неконтрольованого зростання файлу wal у ситуаціях, коли транзакції не здійснюються протягом тривалого часу або є процеси резервного копіювання. читання.
    • У цьому режимі під час запису даних до бази даних нові дані додаються до першого wal-файлу. Коли цей файл досягає достатньо великого розміру, починається запис у другий файл. Після переходу на другий файл wal перший доступний для змін і перезаписів. Цей цикл повторюється, що вирішує проблему неконтрольованого зростання файлу wal.
  • Зміни в обробці JSON: Зміни в маніпулюванні даними JSON спричинили зворотну сумісність і призвели до припинення певних конструкцій для завантаження даних JSON із файлів.

Нарешті, якщо ви зацікавлені в тому, щоб дізнатися більше про це, ви можете ознайомитися з деталями в наступне посилання.