Uma coisa a considerar é codificar problemas. O UTF-8, por exemplo, usa 5 bytes para alguns caracteres. Se você não tem dados, ou dados variáveis, o banco de dados é forçado a assumir o pior: que cada caractere pode ter 5 bytes de comprimento. Assim, pode alocar mais do que realmente precisa usar.
Note que o UTF-16, embora supostamente apenas 2 bytes, também pode ser vítima do mesmo tipo de problemas: ele tem que codificar pares substitutos, que têm 4 bytes de comprimento. O UTF-16 tem vários outros problemas e alguns defendem sempre o uso de UTF-8