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

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы