Ponto de leitura inicial: https://www.percona.com/blog/2015/04/29/generated-virtual-columns-in-mysql-5-7-labs/
Fazendo alguns testes com o percona 5.7 mais recente, eles parecem funcionar bem. Explique os planos e o tempo de parede parece muito bom, mas não estou vendo nenhuma diferença em mostrar o status da tabela index_length ou data_length.
Como você encontra a verdadeira pegada ou sobrecarga para usá-los?
Ao contrário das exibições, elas parecem ser mais rápidas do que as seleções marcadas.
Visualizações e colunas virtuais são semelhantes, pois nenhuma delas é materializada. ou seja, nenhum dos dois armazena dados ou índices, por isso seu
index_length
+data_length
permanece o mesmo.Onde eles diferem é:
Como observação, outro recurso comumente usado com alguma sobreposição aqui são os gatilhos. Muitas vezes, é melhor ter uma coluna virtual do que um acionador atualizando as colunas herdadas na inserção/atualização.
Em resposta a esta pergunta específica:
Não há pegada e você provavelmente não verá a sobrecarga. Claro, existem casos hipotéticos: se você tiver muitas colunas virtuais e
SELECT *
de um cliente, mais dados serão enviados pela rede (já que as linhas são enviadas por completo; os clientes não sabem que podem reconstruir certos dados das definições de colunas virtuais).