Издание на СУБД SQLite 3.45

Публикуван е релиз SQLite 3.45, лека СУБД, представена като динамична библиотека. Кодът на SQLite се разпространява като обществено достояние (public domain), т.е. може да се използва без ограничения и безплатно за всякакви цели. Финансовата подкрепа на разработчиците на SQLite се осъществява от специално създаден консорциум, в който влизат компании като Bentley, Bloomberg, Expensify и Navigation Data Standard.

Основни промени:

  • Всички SQL функции за работа с формати JSON са преписани и преобразувани в нов вътрешен формат на парсинг дърво JSONB, който може да бъде сериализиран и съхраняван в базата данни, за да се избегне повторно парсене при използване на JSON стойности. Новите версии на функциите, генериращи JSON, сега произвеждат бинарен формат JSONB вместо текстов. В функцията json_valid() е добавен опционален втори аргумент, чрез който може да се зададе битова маска, определяща признаци на валиден JSON (например, при задаване на 0x04, валиден ще бъде разпознат блоб JSONB, при задаване на 0x01, текстов JSON в формат RFC-8259, а при задаване на 0x05, и двата варианта).
  • Виртуалната таблица FTS5, използвана за пълнотекстово търсене, получи опцията tokendata, позволяваща използването на собствени токенизатори.
  • По подразбиране е активирана оптимизация SQLITE_DIRECT_OVERFLOW_READ, при която overflow страници, по-големи от стандартния размер на страницата b-tree, се четат директно от файла, избягвайки кеша. За деактивиране при компилацията може да се използва опцията "-DSQLITE_DIRECT_OVERFLOW_READ=0".
  • В планиращия на заявките е повишена ефективността на оптимизацията на транзитивните ограничения (transitive constraint) и е подобрено игнорирането на индекси, които се считат за нискокачествени при извършване на операция ANALYZE.
  • В интерфейса на командния ред е подобрено показването на съдържанието в кодировка UTF-8 на платформата Windows. Обезпечено е автоматичното разпознаване на ползването на CLI интерфейса при изпълнение на скриптове " .dump" и внасяне на съответните изменения в настройките, като " .dbconfig defensive off" и " .dbconfig dqs_dll on".
  • В определените на страната на приложението SQL функции е добавено свойство SQLITE_RESULT_SUBTYPE, което позволява извикването от функцията sqlite3_result_subtype() за инспектиране на подтиповете на аргументите.

Допълнително може да се отбележи развитието на експериментални версии на SQLite с нов режим на водене на журнал на транзакции — WAL2 («PRAGMA journal_mode = wal2»), при който се използват два wal файла («database-wal» и «database-wal2») вместо един. При запис на данни в базата данни, новите данни се добавят в първия wal файл. Ако първият wal файл достигне достатъчно голям размер, се преминава на запис във втория файл. След превключване на втория wal файл, първият става достъпен за фиксиране на промените (checkpoint) и презаписване. Съответно, когато вторият wal файл достигне голям размер, се извършва превключване на първия и т.н., което решава проблема с неконтролируемото нарастване на wal файла в ситуации, когато дълго време не се фиксират транзакции или се извършват продължителни процеси на четене.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster