Последняя версия SQLite была выпущена с экспериментальной поддержкой функций PRAGMA.
SQLite — это широко используемая встраиваемая библиотека базы данных SQL, которая встречается во многих гаджетах с ограниченным объемом памяти, таких как мобильные телефоны, КПК и MP3-плееры.
SQLite — это внутрипроцессная библиотека, которая реализует автономный, бессерверный, транзакционный механизм базы данных SQL. Вся база данных SQL с несколькими таблицами, индексами, триггерами и представлениями содержится в одном файле на диске.
Обновленная версия использует на 9% меньше циклов ЦП, продолжая прирост производительности, наблюдаемый в последних версиях. Количество циклов, используемых SQLite для стандартной рабочей нагрузки, сократилось вдвое всего за последние три года. На графике ниже показано, как снизилась загрузка ЦП по сравнению с последними версиями:
Экспериментальная поддержка функций PRAGMA открывает возможность использования таких функций, как прагма index_info, для возврата результатов, которые не имеют побочных эффектов от обычных операторов SELECT, как возвращающих табличное значение функций. Команда SQLite PRAGMA может использоваться для управления различными переменными среды и флагами состояния в среде SQLite. Существуют соответствующие возвращающие табличное значение функции с тем же именем, что и PRAGMA, с 7-символьным префиксом pragma_.
Например, информацию о столбцах в индексе можно прочитать с помощью прагмы index_info следующим образом:
PRAGMA index_info (‘idx52’);
Или тот же контент можно прочитать, используя:
ВЫБРАТЬ * ИЗ pragma_index_info (‘idx52’);
Преимущество формата функции с табличным значением состоит в том, что запрос может возвращать только подмножество столбцов PRAGMA, может включать предложение WHERE, может использовать агрегатные функции, а функция с табличным значением может быть только одним из нескольких источников данных в присоединиться.
Функции даты и времени — еще одна область, которая была улучшена, так что модификатор unixepoch работает для всего диапазона поддерживаемых дат. Модификатор «unixepoch» заставляет даты в формате DDDDDDDDDD интерпретироваться не как число дней по юлианскому календарю, как обычно, а как время Unix — количество секунд с 1970 года.
Частичные индексы — еще одна область, требующая улучшения. Если вы создадите частичный индекс для «WHERE x NOT NULL», он теперь будет использоваться, даже если столбец «x» появится в операторе LIKE или GLOB. LIKE и GLOB также привлекли внимание в алгоритме сопоставления LIKE и GLOB, который теперь работает быстрее для случаев, когда шаблон содержит несколько подстановочных знаков.
Релиз 3.16 уже получил обновление до 3.16.1, поскольку об ошибке, которая влияла на использование значений строк в триггерах, было сообщено «через несколько мгновений» после публикации версии 3.16.0. Теперь это исправлено.