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

5 respostas
mysql
V

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

5 Respostas

T

É 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.

V

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

V

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

T

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.

V

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