Есть ли индекс у primary key

«Есть ли индекс у primary key» — вопрос из категории Базы данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, primary key автоматически создает уникальный индекс в SQLite (который используется в Android Room). Это ускоряет поиск и обеспечивает уникальность записей.

Пример с Room:

@Entity
data class User(
    @PrimaryKey
    val id: Int,
    val name: String
)

В этом случае Room создаст индекс для поля id, что оптимизирует запросы по этому полю. Можно также явно указать индекс через @Index, но для primary key это избыточно.