1
resposta

Para economizar memória, pq nao usar Tinyint no campo 'idade'? E como usaria o UNSIGNED na prática?

O professor fala que para idade, podemos usar o Smallint para economizar o espaço, mas para economizar mais ainda, poderiamos usar o Tiniynt e inserir apenas número positivos? Para esse caso, na aula anterior fala que é preciso definir como UNSIGNED. Como seria na prática?

Codigo da aula:

CREATE TABLE tbcliente"
( CPF VARCHAR (11) ,
NOME VARCHAR (100) ,
ENDERECO1 VARCHAR (150) ,
ENDERECO2 VARCHAR (150) ,
BAIRRO VARCHAR (50) ,
CIDADE VARCHAR (50) ,
ESTADO VARCHAR (2) ,
CEP VARCHAR (8) ,
IDADE SMALLINT,
SEXO VARCHAR (1) ,
LIMITE_CREDITO FLOAT ,
VOLUME_COMPRA FLOAT ,
PRIMEIRA_COMPRA BIT (1)
1 resposta

Oi, Gabriel! Tudo certo por aí?

É possível sim utilizar o Tinyint para economizar espaço! Enquanto o Smallint (tipo de dado que utilizamos no campo idade) ocupa 2 bytes, o Tinyint ocupa apenas 1 (indo do valor -128 até o 127). Mesmo que, em um primeiro momento, essa variação pareça mínima, ela pode fazer total diferença em nosso sistema, otimizando, por exemplo, o funcionamento do banco de dados.

Além disso, para utilizar o UNSIGNED na prática, basta adicionar a palavra-chave UNSIGNED após o tipo de dado na criação da tabela. No caso do Tinyint, ficaria assim:

IDADE TINYINT UNSIGNED

Caso fôssemos reformular a construção da tabela tbcliente, teríamos o seguinte resultado:

CREATE TABLE tbcliente ( 
    CPF VARCHAR (11),
    NOME VARCHAR (100),
    ENDERECO1 VARCHAR (150),
    ENDERECO2 VARCHAR (150),
    BAIRRO VARCHAR (50),
    CIDADE VARCHAR (50),
    ESTADO VARCHAR (2),
    CEP VARCHAR (8),
    IDADE TINYINT UNSIGNED,
    SEXO VARCHAR (1),
    LIMITE_CREDITO FLOAT,
    VOLUME_COMPRA FLOAT,
    PRIMEIRA_COMPRA BIT (1)
);

Dessa forma, o campo idade só aceitará valores positivos, economizando ainda mais espaço na memória!

Gabriel, se surgir alguma dúvida após minha explicação ou durante os seus estudos, fico à disposição para ajudar!

Um forte abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.