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

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

1 curtida

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

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

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

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.

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.