Como a memória do banco de dados é alocada?

Se eu declarar um monte de campos que nem sempre são necessários, a memória é alocada para cada registro criado ou não aloca memória até que o campo seja inicializado?

Exemplo: Se eu declarar uma tabela com um campo id e um campo char (8), a memória é alocada para a string toda vez que um id é gerado e inserido na tabela, ou é alocado apenas se a string receber um valor?

2
"string" não é um tipo de dados válido. Qual é o tipo de dados real desse campo?
adicionado o autor Joe Stefanelli, fonte

2 Respostas

O banco de dados alocará uma memória definida para campos cujo tamanho de tipo não muda, como campos numéricos e char (n) . Mas para campos do tipo varchar (n) (comprimento variável), por exemplo, eles serão tão grandes quanto os dados contidos neles.

No seu exemplo, um tipo de campo de char (8) alocará memória para todos os 8 caracteres. Se você fizer o tipo de campo varchar (ou nvarchar), ele alocará apenas o espaço atribuído a ele.

Pode ler mais sobre os tipos de string do MySQL aqui .

2
adicionado

Resposta curta: Leva memória (ou espaço duro) toda vez.

Se um campo for char (8), ele alocará SEMPRE 8 bytes (mais 2 bytes iniciais para o cabeçalho do banco de dados). Se for um varchar vazio (34), o espaço mínimo necessário será 2.

2
adicionado