Обновить

Анатомия SQLite-провайдера: уходим от EF Core — типизированное хранилище для десктопа, мобайла и Blazor WASM

Уровень сложностиСложный
Время на прочтение30 мин
Охват и читатели12K
Всего голосов 2: ↑2 и ↓0+4
Комментарии3

Комментарии 3

А чем это лучше sqlite3.dll? Быстрее? Совместимо/взаимозаменяемо с ним?

Тут небольшая путаница — redb.dll это не замена sqlite3.dll и не «другой SQLite», а загружаемое расширение SQLite (.load / sqlite3_load_extension). Оно не заменяет движок, а грузится поверх обычного SQLite: при загрузке через sqlite3ext.h резолвит API хоста и добавляет в базу функции redb (get_object_json, pvt_*-компилятор запросов, soft-delete, view прав).

Поэтому по пунктам:

— Быстрее? Некорректное сравнение: redb.dll использует ваш sqlite3 как есть и в его скорости ничего не меняет. Ценность не в скорости SQLite, а в том, что он превращает SQLite в типизированное объектное хранилище (серверный материализатор + компилятор запросов внутри БД — ровно то, что у Free-тира на Postgres/MSSql живёт как PL/pgSQL).

— Совместимо/взаимозаменяемо? Совместимо с SQLite (грузится в любой sqlite3 ≥ 3.44 — Microsoft.Data.Sqlite, python sqlite3, sqlite3 CLI), но не взаимозаменяемо: сам sqlite3.dll по-прежнему нужен, redb.dll к нему добавляется, а не вместо.

Если совсем коротко: sqlite3.dll — это движок, redb.dll — плагин к нему.

смотри на redb.ru

Теперь ясно. Спасибо.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации