TINYINT(1) ou CHAR(1). Qual o mais rápido para pesquisar no MySql ? Ou não tem diferença ?

5 respostas
mysql
vpmaciel1981

TINYINT(1) ou CHAR(1). Qual o mais rápido para pesquisar no MySql ? Ou não tem diferença ?

5 Respostas

TerraSkilll

É uma boa pergunta. Tentei fazer uma busca rápida pra ver se há algum artigo relevante, mas não achei nada explicitamente claro.

Meu palpite é que, excluídas todas as outras possíveis diferenças, o tinyint seja mais rápido, por ocupar menos espaço e não estar sujeito à outras conversões que os tipos alfanuméricos (char, varchar, text) estão. Mas não tenho nenhuma referência para confirmar.

Além disso, também parece o tipo de diferença que só se torna notável com muitos registros, na casa dos milhões. E outras otimizações, como índices, podem atenuar possíveis problemas de desempenho.

Abraço.

vpmaciel1981

Obrigado. tô na pesquisa aqui inclusive de sites em inglês e também não estou achando.

vpmaciel1981

Mas o TINYINT(1) ou CHAR(1) ocupam a mesma quantidade de memória em disco.

TerraSkilll

Tem certeza disso? As referências que encontrei indicam que eles podem sim ocupar o mesmo espaço, mas que o espaço de tipos alfanuméricos é afetado pelo collation (charset, como utf8, utf16 ou latin_1), de modo que o espaço ocupado (em bytes) pode ser maior que o tamanho do campo.

Abraço.

vpmaciel1981

Não tenho certeza, apesar de mais de uma fonte de pesquisa ter informado que ocupariam mesmo espaço em disco. Vou dar preferência ao TINYINT(1) devido você ter citado a collation que pode ser diferente.

Grato.

Criado 9 de setembro de 2018
Ultima resposta 10 de set. de 2018
Respostas 5
Participantes 2