Методички / Лабораторная работа 5
.pdfЛабораторная работа 5: Рефакторинг приложений с целью оптимизации запросов и индексов базы данных
Одной из ключевых задач рефакторинга приложений является оптимизация работы с базой данных. Это включает в себя улучшение производительности SQL-запросов, правильное использование индексов и оптимизацию архитектуры базы данных для ускорения обработки данных. В рамках данной лабораторной работы студенты изучат основные подходы к анализу и оптимизации SQL-запросов, а также научатся добавлять и изменять индексы для повышения производительности.
Цели лабораторной работы
1.Изучить основные принципы оптимизации SQL-запросов.
2.Научиться выявлять узкие места в работе базы данных.
3.Освоить создание, модификацию и удаление индексов для ускорения запросов.
4.Применить знания на практике для оптимизации базы данных и приложения. Задание
1.Ознакомьтесь с теоретическими аспектами как работают индексы в реляционных базах данных, влияние индексов на производительность SELECT, INSERT, UPDATE и DELETE запросов, распространенные проблемы в SQL-запросах (например, отсутствие индексов, избыточные JOIN-операции, SELECT * и т.д.), изучите инструменты мониторинга производительности базы данных (например, EXPLAIN, EXPLAIN ANALYZE для
PostgreSQL/MySQL).
2.Используйте предоставленную базу данных или проект, содержащий примеры низкоэффективных запросов. Проведите анализ производительности текущих SQLзапросов: используйте команды анализа, такие как `EXPLAIN`, чтобы понять, как запрос обрабатывается базой данных, найдите узкие места (например, полные сканирования таблиц вместо использования индексов).
3.Оптимизируйте SQL-запросы: замените неэффективные запросы (например, `SELECT *`) на более узкие выборки столбцов, уменьшите количество JOIN-операций, если это возможно, перепишите запросы для использования индексов. Сравните производительность запросов до и после оптимизации, используя инструменты анализа (например, время выполнения или EXPLAIN).
4.Добавьте индексы к таблицам для ускорения наиболее часто используемых запросов. Проверьте влияние индексов на производительность: сравните время выполнения запросов до и после добавления индексов, используйте EXPLAIN, чтобы убедиться, что индексы действительно используются. Изучите влияние индексов на операции вставки и обновления данных (INSERT, UPDATE). Удалите неиспользуемые или дублирующиеся индексы, если они замедляют операции.
6. Подготовьте отчет, включающий список проблемных запросов и их анализ (до оптимизации), измененные запросы с описанием внесенных улучшений, добавленные,
измененные или удаленные индексы (с пояснением причин), сравнительные результаты производительности до и после оптимизации.
