Моя первоначальная проблема началась, когда работодатель нанял меня в качестве разработчика отчетов, но в первый день работы дал мне задания DBA.Поэтому, пожалуйста, смиритесь с тем, что у меня недостаточно знаний о навыках DBA.
Так что о DB.это PostgreSQL Amazon RDS.Размер БД составляет 127 ГБ (и текущая проблема / моя проблема).
Этот размер слишком велик для компании в 3 (+ несколько месяцев) года, в которой, конечно, не так много записей данных.
После более глубокого изучения я смог определить несколько таблиц, которые занимали почти 90% от этих 127 ГБ.
Одна из этих таблиц позволяет называть ее таблицей X размером 23 ГБ (внешнийразмер 14GB).количество записей составляет всего 366541. из 36 столбцов, из которых только 5 являются строковыми типами, остальные - целые, bool, serial и timestamp.
Одна из мыслей, которая пришла мне в голову, была фактическим текстом, который был сохранен в одном из столбцов, является причиной размера таблицы.
После изучения данных я увидел, что весь текст, который повторялся для этих записей, уже был сохранен как отдельные записи в разных таблицах.Поэтому, чтобы проверить свою теорию, я решил разбить эти строковые данные на столбцы FK и проверить, не приведет ли это к разнице в размерах.
Но после клонирования структуры и данных этой таблицы новая таблица на тестовой БД стала намного меньше, 200 МБ.Я сравнил все типы столбцов, данные, количество, параметры сервера, все одинаково.Единственное отличие состоит в том, что в тестовой таблице больше нет FK.столбцы и их данные есть, но сам столбец не FK-ed (ссылка).
Чего мне не хватает?Что является причиной того, что таблица становится такой большой по размеру?