может быть подмножеством ключей-кандидатов или полем с уникальным ограничением
есть очень большая, очень старая таблица с несколькими сотнями столбцов. Некоторые из столбцов являются историческими и не используются ни в одном клиенте. Они в основном пустые (за исключением очень старых записей). Я хочу очистить БД и избавиться от старых, неиспользуемых столбцов в определенных таблицах.
Проблема в том, что все сторонние клиенты обращаются к этой БД (только для чтения). Я не могу ожидать, что все поставщики обновят своих клиентов. Пока они запрашиваютSELECT * ...
это не имеет значения. Но я ожидаю, что они запросят явно (SELECT colA, colB, ...
). Очевидно, что удаление colA из таблицы приведет к ошибкам на стороне клиента.
Теперь я хотел бы знать, какие столбцы явно используются любыми операторами запроса, чтобы я мог удалить неиспользуемые. Я думаю, я мог бы использовать журнал запросов, проанализировать его и найти явно используемые столбцы, но:
Мы получаем несколько миллионов запросов в час.Некоторые клиенты обращаются к нашей БД, может быть, один раз в неделю, а некоторые - каждую секунду.Это означает, что журнал запросов должен был бы работать месяцами в производственной среде, и я не знаю, может ли это оказать / окажет какое-либо негативное влияние на серверы или общую производительность.
Есть ли другой, более твердый раствор? Мое беспокойство относительно журнала запросов преувеличено? Я надеялся, что MariaDB / MySQL где-то хранит статистические данные, показывающие использование столбцов, но я не смог найти ничего, что мне нужно.