Используя 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-файл в вашем репозитории.