Добавил:
liisakochik@gmail.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Мага. 1 семестр / РаспрБД_Кочубей_Зубченко_1308_лаб3

.docx
Скачиваний:
0
Добавлен:
04.01.2026
Размер:
220.12 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра вычислительной техники

отчет

по лабораторной работе №3

по дисциплине «Распределенные базы данных»

Тема: Статистика

Студентка гр. 1308

_______________

Кочубей Е.Д.

Студентка гр. 1308

_______________

Зубченко П.А.

Преподаватель

_______________

Шичкина Ю.А.

Санкт-Петербург

2025

Цель работы

Изучение особенностей индексов, генерации и расшифровки статистики информации из базы данных.

Ход работы

Создание базы данных

Для начала создадим базу данных, в которой будет храниться наша будущая таблица.

Рисунок 1 – запрос, создание базы данных

Рисунок 2 – результат создания базы данных

Рисунок 3 – структура созданной базы данных

Создание таблицы

Создаём одну таблицу, с которой в дальнейшем будет взаимодействие.

Рисунок 4 – запрос, создание таблицы tab

Рисунок 5 – результаты создания таблицы tab

После того, как таблица была успешно создана, мы можем её заполнить данными.

Рисунок 6 – запрос, добавление значений в таблицу tab

С помощью команды «SELECT * FROM tab;» выводим получившуюся таблицу.

Рисунок 7 – результат добавления значений в таблицу Product

Создание запросов

Наша таблица сформирована, а это значит, что можно приступить к написанию запросов, которые ответят нам на вопросы.

Запросы без индексов.

Найти всех производителей колбасы.

Рисунок 8 – запрос

Рисунок 9 – результат

Найти все продукты производителя ВЛ.

Рисунок 10 – запрос

Рисунок 11 – результат

Найти продукцию ВЛ, тип которой производит только эта компания.

Рисунок 12 – запрос

Рисунок 13 – результат

Запросы с индексами.

Для начала нам нужно создать индексы.

Рисунок 14 – запрос на создание индексов

Найти всех производителей колбасы.

Рисунок 15 – запрос

Рисунок 16 – результат

Найти все продукты производителя ВЛ.

Рисунок 17 – запрос

Рисунок 18 – результат

Найти продукцию ВЛ, тип которой производит только эта компания.

Рисунок 19 – запрос

Рисунок 20 – результат

Сбор и расшифровка статистики

Таблица без индексов.

Команда EXPLAIN для поиска всех производителей колбасы.

Рисунок 21 – запрос

Рисунок 22 – результат

Здесь у нас простой запрос, который проходит по всем 19 строкам, чтобы выдать результат. Также обращаем внимание на параметр filtered, который равен 10. Это означает, что лишь 10% из прочитанной информации попадёт вывод, то есть остальное – это мусор (работа впустую).

Команда EXPLAIN для поиска всех продуктов производителя ВЛ.

Рисунок 23 – запрос

Рисунок 24 – результат

Тоже простой запрос, который поясняется точно также, как и предыдущий.

Команда EXPLAIN для поиска продукции ВЛ, тип которой производит только эта компания.

Рисунок 25 – запрос

Рисунок 26 – результат

Этот запрос сложный, поэтому у первой таблицы тип оператора PRIMARY (первоочередной), а второй помечается SUBQUERY (подзапрос). Сначала рассмотрим подзапрос, так как он выполняется первым: было прочитано 19 строк, из которых подошло 90%, что является отличным показателем. Но в итоге в верхнем запросе у нас остаётся только 10% от начального количества. Опять же, обработали кучу лишнего.

Команда ANALYZE.

Рисунок 27 – запрос

Рисунок 28 – результат

Данная команда обновляет информацию о распределении ключей в таблице, так как ключей у нас на данном этапе нет, то в любой случае анализ закончится успешно.

Команда SHOW INDEX.

Рисунок 29 – запрос

Рисунок 30 – результат

Индексов у нас не имеется, поэтому и таблица вышла пустая.

Таблица с индексами.

Команда EXPLAIN для поиска всех производителей колбасы.

Рисунок 31 – запрос

Рисунок 32 – результат

В запросе используется индекс для поиска точных значений (параметр type=ref). Сразу видно, насколько наличие индексом оптимизируют работу: проверили только 5 строк, из которых подошли все (параметр filtered равняется 100%).

Команда EXPLAIN для поиска всех продуктов производителя ВЛ.

Рисунок 33 – запрос

Рисунок 34 – результат

Команда explain этого запрос также показала отличные результаты: прочитанных строк всего лишь 3, и в результат попали все они.

Команда EXPLAIN для поиска продукции ВЛ, тип которой производит только эта компания.

Рисунок 35 – запрос

Рисунок 36 – результат

Здесь у нас сложный запрос, каждый из которых использует свой индекс. Подзапрос хорошо проделал работу и нашёл 4 подходящих строки, а далее внешний запрос уже исключил лишь одну строку!

Команда ANALYZE.

Рисунок 37 – запрос

Рисунок 38 – результат

Тут у нас уже есть индексы, и в данной ситуации команда ANALYZE полезна. Если у нас запросы выполняются медленно или произошло изменение данных, то она может помочь оптимизировать выбор индексов, за чем последует более стабильная работа кода.

Команда SHOW INDEX.

Рисунок 39 – запрос

Рисунок 40 – результат

Данная команда показывает информацию по индексам. У нас было создано 4 индекса, которые являются не уникальными, то есть допускается дублирование. Поясним сразу, что один из индексов (idx_производитель_тип) разделился на два: первый использует первый столбец, второй – второй.

Самым значимым параметром является «cardinality», который показывает количество уникальных значений по соответствующему индексу. Для всех индексов у нас высокое число, а значит, что фильтрация хорошая.

Выводы

В ходе лабораторной работы была создана база данных, в которой расположилась одна таблица tab, которая была заполнена вручную данными, предоставленными преподавателем.

Было выполнено по 3 запроса для таблицы без и с индексами, результаты которых визуально не отличались, но как было исследовано далее, эффективность которых значительно разнится.

Благодаря проведённой работе были приобретены знания работы с индексами, а также сбор и расшифровка статистики с помощью встроенных ключевых слов.