Используя docker поднимите инстанс PostgreSQL (версию 13). Данные БД сохраните в volume.
Подключитесь к БД PostgreSQL используя psql
.
Воспользуйтесь командой \?
для вывода подсказки по имеющимся в psql
управляющим командам.
Найдите и приведите управляющие команды для:
- вывода списка БД
- подключения к БД
- вывода списка таблиц
- вывода описания содержимого таблиц
- выхода из psql
Используя psql
создайте БД test_database
.
Изучите бэкап БД.
Восстановите бэкап БД в test_database
.
Перейдите в управляющую консоль psql
внутри контейнера.
Подключитесь к восстановленной БД и проведите операцию ANALYZE для сбора статистики по таблице.
Используя таблицу pg_stats, найдите столбец таблицы orders
с наибольшим средним значением размера элементов в байтах.
Приведите в ответе команду, которую вы использовали для вычисления и полученный результат.
Архитектор и администратор БД выяснили, что ваша таблица orders разрослась до невиданных размеров и поиск по ней занимает долгое время. Вам, как успешному выпускнику курсов DevOps в нетологии предложили провести разбиение таблицы на 2 (шардировать на orders_1 - price>499 и orders_2 - price<=499).
Предложите SQL-транзакцию для проведения данной операции.
Можно ли было изначально исключить "ручное" разбиение при проектировании таблицы orders?
Используя утилиту pg_dump
создайте бекап БД test_database
.
Как бы вы доработали бэкап-файл, чтобы добавить уникальность значения столбца title
для таблиц test_database
?
Выполненное домашнее задание пришлите ссылкой на .md-файл в вашем репозитории.