É possível descobrir quais colunas são (não) explicitamente consultadas no MySQL / MariaDB?

Temos uma mesa muito grande e muito antiga, com algumas centenas de colunas. Algumas das colunas são históricas e não são usadas em nenhum cliente de gravação. Eles estão quase vazios (espere em registros muito antigos). Quero limpar o banco de dados e me livrar de colunas antigas e não utilizadas em determinadas tabelas.

O problema são todos os clientes de terceiros que acessam esse banco de dados (somente leitura). Não posso esperar que todos os provedores atualizem seus clientes. Contanto que eles estejam consultandoSELECT * ..., isso não importa. Mas espero que eles consultem explicitamente (SELECT colA, colB, ...) A remoção de colA da tabela resultaria em erros no lado do cliente, obviamente.

Agora eu gostaria de saber quais colunas são usadas explicitamente por qualquer instrução de consulta, para que eu possa remover as não utilizadas. Acho que poderia usar o log de consulta, analisá-lo e encontrar colunas usadas explicitamente, mas:

Recebemos alguns milhões de consultas por hora.Alguns clientes acessam nosso banco de dados talvez uma vez por semana, se houver, alguns a cada segundo.

Isso significa que o log de consulta precisaria ser executado por meses em um ambiente de produção e não sei se isso poderia / teria algum impacto negativo nos servidores ou no desempenho geral.

Existe alguma outra solução mais sólida? As minhas preocupações com o log de consultas são exageradas? Eu esperava que o MariaDB / MySQL estivesse armazenando dados estatísticos em algum lugar, mostrando o uso de colunas, mas não consegui encontrar o que precisava.

questionAnswers(2)

yourAnswerToTheQuestion