🚀 Ускоряем Room через индексы — 26 мая 2026 г. в 07:10:00.779
🚀 Ускоряем Room через индексы https://proandroiddev.com/accelerate-android-room-queries-with-database-indices-1471f3fee672 Когда таблица в Room разрастается, простые запросы начинают тормозить. Причина в том, что без индекса SQLite делает Table Scan - проходит каждую строку, пока не найдёт нужную. Это O(N) и на 100 000 записей даёт заметный лаг прямо в UI. 📚 С индексом SQLite строит B-Tree - отсортированное дерево, в котором половина пространства поиска отбрасывается на каждом уровне. Те же 100 000 записей возвращаются почти мгновенно. В статье разбирается, как и какие индексы применять: обычный по одной колонке для частых WHERE, композитные по нескольким полям с Left-to-Right Rule, уникальные для бизнес-ключей и для foreign keys. Плюс честный "разговор" про трейдоффы - индексы занимают память и замедляют вставки/апдейты, потому что нужно поддерживать дерево. 🔌 Подключается прямо в Entity, Room сам генерит CREATE INDEX: @Entity( tableName = "products", indices = [Index(value = ["sku"])] ) data class Product(...) Обсуждаем тут -> https://t.me/famous_md_bot (Tier 3) —————— 💭 Базовая, но недооценённая тема. Telegram | Селеба | Max | YouTube

