INT ou CHAR? MySQL
04/05/2015
0
1 - Usuário Comum.
2 - Usuário Moderador.
3 - Usuário Administrador.
Minha dúvida é se devo usar CHAR(1) ou INT, já que o tamanho é fixo e numérico. Obrigado!
Jeremias Bastos
Post mais votado
05/05/2015
INT ocupa 4 bytes.
TINYINT ocupa 1 byte (faixa menor de valores, porém adequado ao seu objetivo).
CHAR ocupa 1 byte por posição (ou seja, char(4) ocupa 4 bytes, por exemplo).
Sendo assim, cabe avaliar: CHAR ou TINYINT? Aí vai depender da sua necessidade. Se armazenar uma letra pode ser ficar mais claro, então eu faria essa opção. Se não, então fica a gosto do cliente mesmo.
Um abraço.
Joel Rodrigues
Mais Posts
04/05/2015
Lucas Ramos
05/05/2015
Jothaz
Nesta cado o indicado é usar números INT, TINYINT ou SMALLINT.
CHAR acho mais indicado para campos com conteúdos texto por exemplo Sigla UF.
05/05/2015
Marilia Silva
05/05/2015
Jothaz
É por ai mesmo.
Agora como ressaltei neste caso o indicado é usar números INT, TINYINT ou SMALLINT.
05/05/2015
Jothaz
No exemplo do post possivelmente a quantidade de itens da tabela não cresceria, porém por acaso ultrapassasse a quantidade de 9 itens teria de se alterar o tamanho do campo o que provoca uma mudança estrutural que não são nada agradavél.
Você deve usar o tipo de acordo com o conteúdo, se vai gravar número o indicado seria usar alguns dos tipos numérios que mencionei.
Quando você usa tipos númericos (INT, TINYINT ou SMALLINT) as consultas ficariam assim:
Select * from tabela where CRUPO_ID = 1
Se utilizar CHAR assim:
Select * from tabela where CRUPO_ID = '1'
Usando tipo numérico a query fica mais simples e legivel além de garantir uma melhor perfomance.
Com relação a utilização do CHAR seria indicado para guardar valores do tipo string (texto) que voce tenha certeza que não aumentarão. Por exemplo:
SEXO (genero) -> 'F' ou 'M' (sem ser sexista) e mesmo que surja um teceiro não afeta a estrutura
SIGLA UF -> 'SP', 'BA'...
VOGAIS -> 'a', 'e' ....
TIPO PESSOA -> 'F' ou 'J'
Uma preocupação seria o espaço usado para armazenar cada tipo, como o Joel destacou, o que depende de cada cenário. Muitas das vezes nem se faz necessário este tipo de preocupação.
05/05/2015
Jeremias Bastos
05/05/2015
Jeremias Bastos
05/05/2015
Marilia Silva
05/05/2015
Marilia Silva
06/05/2015
Jothaz
Acho que se existir alguma diferença é irrelevante.
Só se sua aplicação for manipular bilhões de registros e acessos concorrentes.
Clique aqui para fazer login e interagir na Comunidade :)