Встречается на собеседованиях • сегодня

Как можно улучшить производительность в базе данных

  1. Индексы: Создавайте индексы для часто используемых столбцов в WHERE, JOIN и ORDER BY. Но не переусердствуйте — индексы замедляют вставку/обновление.

    sql
    CREATE INDEX idx_user_email ON users(email);
  2. Оптимизация запросов: Избегайте SELECT *, используйте только нужные поля. Проверяйте EXPLAIN для анализа запросов.

  1. Нормализация/денормализация: Баланс между нормализованной структурой (меньше дублирования) и денормализацией (меньше JOIN'ов).

  2. Кэширование: Используйте Redis или кэш приложения для часто запрашиваемых данных.

  3. Партиционирование: Разделяйте большие таблицы на части (например, по дате).

  4. Batch-операции: Группируйте вставки/обновления.

    java
    // Вместо множества отдельных insert'ов
    PreparedStatement ps = connection.prepareStatement("INSERT INTO logs VALUES (?, ?)");
    for (Log log : logs) {
        ps.setString(1, log.getMessage());
        ps.addBatch(); // Добавляем в batch
    }
    ps.executeBatch(); // Отправляем одним пакетом
  5. Connection Pool: Используйте HikariCP или аналоги для управления соединениями.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы