03 Декабря 2024, 22:52

SQLite

Автор ping_Win, 20 Февраля 2009, 18:29

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

ping_Win

20 Февраля 2009, 18:29 Последнее редактирование: 01 Февраля 2011, 18:08 от Zhek@Ch
[size="3"]Вышел релиз SQLite 3.6.11[/size]

Вышел релиз SQLite 3.6.11. В новой версии, кроме исправления ошибок, представлен интерфейс для горячего резервного копирования, командную оболочку добавлены команды ".backup" и ".restore". Кроме того на сайте перерисованы некоторые диаграммы с демонстрацией синтаксиса SQL диалекта, поддерживаемого в SQLite.

http://www.opennet.r...shtml?num=20361

turbo

28 Декабря 2009, 17:40 #1 Последнее редактирование: 01 Февраля 2011, 18:11 от Zhek@Ch
[size="3"]Реализация системы репликации для SQLite[/size]

Увидела свет утилита sqlite3-rdiff, предназначенная для организации репликации данных между несколькими БД SQLite. Утилита поддерживает три базовые операции:

 1. Формирование файла хэш-сигнатур, отражающих текущее состояние всех записей БД.
 2. Генерацию delta-патча на основе сравнения текущего состояния базы с состоянием отраженным в файле сигнатур.
 3. Обновление данных в БД на основе заданного delta-патча:

Сигнатуры вычисляются с использованием хэш-функции MurmurHash для всех данных одной строки или группы строк базы. Размер файла сигнатур занимает около 10% от размера исходной базы, но имеется возможность вычисления и проверки сигнатур сразу для нескольких строк, что позволяет значительно сократить размер файла сигнатур за счет увеличения размера delta-патча. Примечательно, что при генерации одной сигнатуры для N-строк, размер файла с сигнатурами уменьшается в N раз. Группировку предпочтительно использовать для баз большого размера, данные в которых изменяются не часто.

Пример по доведению необновленной версии slave.db до актуальной БД master.db:


 sqlite3-rdiff --rows-per-hash 16 signature slave.db slave.db.sign
 sqlite3-rdiff delta slave.db.sign master.db slave.db.delta
 sqlite3-rdiff patch slave.db slave.db.delta slave.db

В итоге, для slave.db размером 1.5 Гб будет сгенерирован патч slave.db.delta размером 4.3 Мб и файл сигнатур slave.db.signature размером 13 Мб. В данный пример (--rows-per-hash 16) сигнатура создается для 16 строк таблицы, если формировать сигнатуру для каждой строки, то итоговые файлы будут следующего размера: slave.db.delta - 3.4 Мб, slave.db.signature - 160 Мб.

http://www.opennet.r...shtml?num=24835

Zhek@Ch

01 Февраля 2011, 18:12 #2 Последнее редактирование: 01 Февраля 2011, 18:12 от Zhek@Ch
[size="3"]Релиз БД SQLite 3.7.5 [/size]

Вышел релиз БД SQLite 3.7.5, в котором, кроме исправления ошибок, добавлены следующие новшества:

  • Реализована функция форматирования строк sqlite3_vsnprintf();
  • В интерфейс sqlite3_db_status() добавлена поддержка опций SQLITE_DBSTATUS_LOOKASIDE_HIT, SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE и SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL;
  • Добавлены используемые на этапе компиляции опции SQLITE_OMIT_AUTORESET и SQLITE_DEFAULT_FOREIGN_KEYS;
  • Переработана функция sqlite3_stmt_readonly(), которая теперь поддерживает все предварительно подготовленные запросы (prepared statement) и работает в сочетании с VACUUM;
  • В cli-интерфейс добавлена поддержка опции "-heap" ;
  • Устранена ошибка, которая могла привести к повреждению базы в ситуации частых изменений данных, затрагивающих и не затрагивающих WAL, при одновременном выполнении VACUUM;
  • Расширены возможности механизма sqlite3_trace(), связанные с улучшением наглядности вывода результатов трассировки, при использовании виртуальных таблиц FTS3/4 и RTREE;
  • Для поддерживаемых типов VFS изменен метод xFileControl(), который теперь возвращает SQLITE_NOTFOUND вместо SQLITE_ERROR для неопределенных типов операций;
  • При отключенной "PRAGMA synchronous", SQLite теперь использует для управления файлами метод синхронизации SQLITE_FCNTL_SYNC_OMITTED, вместо вызова xSync.

Zhek@Ch

27 Июня 2011, 22:27 #3 Последнее редактирование: 27 Июня 2011, 22:27 от Zhek@Ch
[size="3"]Релиз БД SQLite 3.7.7 [/size]

Доступен релиз БД SQLite 3.7.7, в котором, кроме исправления ошибок, добавлены следующие новшества:

  • Добавлена поддержка загрузки БД по имени, заданному в форме URI;
  • Добавлен интерфейс sqlite3_vtab_config() в рамках поддержки выражений "ON CONFLICT" для виртуальных таблиц;
  • В виртуальных таблицах добавлены методы xSavepoint, xRelease и xRollbackTo для обеспечения работы выражения "SAVEPOINT";
  • Обновлена встроенная реализация виртуальных таблиц FTS3/FTS4 и RTREE в рамках поддержки выражений "ON CONFLICT" и "REPLACE";
  • Проведена оптимизация, исключившая лишний парсинг схемы БД;
  • В FTS4 индексах добавлена поддержка опций для задания префикса и метода упорядочивания;
  • Реализована возможность открытия работающих в WAL-режиме баз только на чтение, до момента завершения текущих на момент открытия операций записи и чтения.
  • Добавлена поддержка в процессе работы коротких имен файлов (8+3). Например, вместо "app.db-wal" при указании опции "8_3_names=1" будет использоваться файл "app.wal".

Zhek@Ch

28 Июня 2011, 23:50 #4 Последнее редактирование: 28 Июня 2011, 23:50 от Zhek@Ch
[size="3"]Подборка расширений к SQLite и полнотекстовая система поиска с поддержкой словоформ [/size]

Представлен список расширений для БД SQLite, среди которых ICU, FTS3, реализация функций упаковки и распаковки данных с использованием zlib, подборка функций для манипулирования IPv4 адресами, генератор UUID, реализация хэшей MD5 и SHA1. Также поддерживается набор утилит для работы со справочником адресов КЛАДР, конвертацией баз данных XBase в формат SQLite и репликации БД SQLite.

Кроме того, обновлена поисковая система Poisk, для работы которой теперь достаточно стандартного SQLite с вышеуказанным расширением FTS3 (раньше использовалась собственная сборка SQLite). Благодаря поддержке стеммеров Snowball в вышеназванном FTS3 доступен поиск по словоформам. Система распространяется в рамках лицензии GPLv3. Система подходит как для индексации документов на десктопе, так и для организации системы поиска на web-сайте. Поддерживается индексирование файлов, архивов и файлов в архивах, распознавание кодировки текстовых документах производится автоматически.

Все компоненты оформлены в виде deb-пакетов и доступны через специальный репозиторий для текущего Debian Stable. При установке из deb-пакетов требуемые зависимости устанавливаются автоматически. В репозитории содержатся пакеты с исходным кодом и бинарные сборки для архитектуры amd64. Все пакеты можно пересобрать и для архитектуры x86.


Zhek@Ch

03 Ноября 2011, 01:41 #5 Последнее редактирование: 03 Ноября 2011, 01:41 от Zhek@Ch
[size="3"]Новая версия БД SQLite 3.7.9 [/size]

Доступен релиз БД SQLite 3.7.9, в котором отмечены следующие изменения:

  • В случае если поисковый запрос через оператор MATCH по виртуальной таблице FTS4 (полнотекстовый поиск) начинается с символа "^" то его действие отныне применяется к началу указанного поля в документе. Изменение может потенциально нарушать совместимость;
  • В интерфейс sqlite3_db_status() добавлены опции SQLITE_DBSTATUS_CACHE_HIT и SQLITE_DBSTATUS_CACHE_MISS для оценки эффективности попадания в кэш;
  • Удалена поддержка опции SQLITE_ENABLE_STAT2, вместо которой следуют использовать более функциональную сборочную опцию SQLITE_ENABLE_STAT3, включающую накопление статистики для выполняемых запросов, которая может быть использована при выполнении команды ANALYZE и в планировщике запросов;
  • Улучшена работа утилиты sqlite3_analyzer, добавлены новые опции "--pageinfo" и "--stats", а также поддержка смешанных БД;
  • Расширен интерфейс sqlite3_data_count(), который теперь может быть использован для определения наличия SQLITE_DONE для предварительно формируемых запросов (prepared statement);
  • Добавлен признак SQLITE_FCNTL_OVERWRITE, указывающий на то, что при выполнении текущей транзакции файл с БД будет полностью переписан (например, при выполнении VACUUM);
  • Проведена оптимизация планировщика запросов, который теперь более оптимально привлекает индексы при определении вхождений в "OR" выражения в блоке "WHERE";
  • Добавлена активируемая на этапе сборки опция SQLITE_DIRECT_OVERFLOW_READ, при которой overflow-страницы, размер которых больше стандарного размера страницы b-tree, читаются из файла напрямую, минуя кэш;
  • Устранено ограничение на размер точности вывода в опциях форматирования для семейства функций sqlite3_mprintf();
  • Устранены ошибки, среди которых:
    • невозможность выполнения "ALTER TABLE ... RENAME" для некоторых виртуальных таблиц с кодировкой UTF16;
    • проблемы преобразования из ASCII во float;
    • неверное вычисление агрегатных выражений с несколькими агрегатными функциями, аргументами которых является сложное выражение, отличающиеся только регистром символов;
    • ошибка вычисления прагм page_count и quick_check, если их имена заданы заглавными буквами;
    • сбой выполнения VACUUM при активации прагмы count_changes;
    • крах из-за ошибки в реализация виртуальных таблиц, проявляющийся при удалении таблицы FTS4 внутри транзакции с последующим выполнением операции SAVEPOINT.