REDB: индексы, или почему на любую схему — это быстро
В предыдущей части цикла разобрали 13 таблиц REDB: как устроены objects , values , structures , как RTTI-хранение значений отличается от старого EAV-паттерна, зачем нужен scheme_metadata_cache . Если не читали — начните с неё, без понимания схемы дальше тяжело. В этой статье — то, что обычно идёт следующим вопросом: «А индексы где? У вас же значения всех полей лежат в одной таблице. Любой WHERE — это Seq Scan по миллионам строк». Это статья 1.1, а не 2 — потому что она прямое продолжение разговора про физическое хранение. Глубокое погружение в C# — это статьи 3-5 цикла : Code-first схемы ( SyncSchemeAsync<T> ), CRUD (SaveAsync/LoadAsync), LINQ-транслятор. Здесь разговор остаётся в плоскости БД и DDL. Цифры, на которые опираемся, — с реального прода: TSUM, логистическая система, обслуживает движение грузовиков и заказов через РЦ.
https://habr.com/ru/articles/1045208/
#redb #dotnet #postgresql #mssql #индексы #производительность #c# #c#net