Встречается на 16% собеседований по C#
Как оптимизировать запросы к БД
-
Индексы – добавляй индексы на часто используемые поля в WHERE, JOIN, ORDER BY.
csharp// Пример создания индекса через EF Core modelBuilder.Entity<User>().HasIndex(u => u.Email).IsUnique(); -
Выборка только нужных данных – избегай
SELECT *, используй проекции.csharpvar users = dbContext.Users.Select(u => new { u.Id, u.Name }).ToList();
-
Пагинация – для больших таблиц применяй
Skip()/Take().csharpvar pagedUsers = dbContext.Users.Skip(10).Take(5).ToList(); -
Ленивая загрузка (Lazy Loading) vs Жадная (Eager Loading) – выбирай осознанно.
csharp// Eager Loading var orders = dbContext.Orders.Include(o => o.Items).ToList(); -
Кэширование – Redis или MemoryCache для часто читаемых данных.
-
Batch-операции – группируй INSERT/UPDATE.
csharpdbContext.BulkInsert(entities); // Например, через библиотеку EF Extensions -
Оптимизация JOIN – проверяй наличие индексов и избегай избыточных связей.
Важно: всегда анализируй план выполнения запроса (EXPLAIN в SQL).
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы