Preciso adicionar um novo campo a uma tabela. O campo armazenará apenas um número que varia de 0 a talvez 30, portanto (em teoria) um campo de um único byte deve servir.
O menor tipo de dado inteiro listado na documentação é SMALLINT, que requer 2 bytes.
A tabela à qual desejo adicionar o campo é particionada e atualmente contém aproximadamente 3 bilhões de linhas. Portanto, adicionar um campo de 2 bytes a cada linha deve exigir 6 bilhões de bytes ou 6 GB.
Por motivos que ainda não entendi (consulte esta pergunta ), estou ficando sem espaço ao adicionar um campo SMALLINT a uma tabela grande.
PERGUNTA - existe um tipo de dados de byte único que posso usar para armazenar um número com apenas um intervalo muito pequeno de valores?
Bem, você pode usar o tipo especial "char" (observe as aspas duplas e nenhum comprimento) e, em seguida, lançar seus valores na entrada e na saída.
Diga-nos, porém, que porcentagem do tamanho total da tabela são os 3 GB que você deseja salvar e por que isso é importante o suficiente para justificar o esforço extra?