Dividindo o desempenho real da comparação de string versus não flutuantes, neste caso, qualquer tamanho não assinado e assinado não importa. O tamanho é realmente a verdadeira diferença no desempenho. Seja 1byte + (até 126 bytes) versus 1,2,4 ou comparação de 8 bytes ... obviamente não flutuantes são menores do que strings e flutuadores e, portanto, mais amigáveis à CPU em montagem.
A comparação string a string em todos os idiomas é mais lenta do que algo que pode ser comparado em uma instrução pela CPU. Mesmo comparar 8 bytes (64 bits) em uma CPU de 32 bits ainda é mais rápido do que um VARCHAR (2) ou maior. * Novamente, olhe para o assembly produzido (mesmo à mão), é preciso mais instruções para comparar char por char do que numérico CPU de 1 a 8 bytes.
Agora, quanto mais rápido? depende também do volume de dados. Se você estiver simplesmente comparando 5 com 'audi' - e isso é tudo que o seu banco de dados possui, a diferença resultante é tão mínima que você nunca a veria. Dependendo da CPU, implementação (cliente / servidor, web / script, etc) você provavelmente não verá até que faça algumas centenas de comparações no servidor de banco de dados (talvez até alguns milhares de comparações antes que seja perceptível).
- Para anular a disputa incorreta sobre comparações de hash. A maioria dos algoritmos de hash são lentos, então você não se beneficia de coisas como CRC64 e menores. Por mais de 12 anos desenvolvi algoritmos de busca para mecanismos de busca multi-condados e 7 anos para agências de crédito. Qualquer coisa que você possa manter em números mais rápido ... por exemplo, números de telefone, códigos postais, até mesmo moeda * 1000 (armazenamento) moeda div 1000 (recuperação) é mais rápido do que DECIMAL para comparações.
Ozz