sql >> Base de Datos >  >> RDS >> Mysql

¿Es más rápido convertir a varchar o varchar a int cuando se compara en MySQL?

Eso depende de los índices. Si ambas columnas tienen índices establecidos, debe convertir a int , porque solo necesita comparar 4 bytes. Sin embargo, si solo el varchar la columna está indexada, convertida en varchar .

Al final, debería tener su consulta explain ed, para ver qué índice se utiliza y convertir en consecuencia.

Si no se establece un índice, conversión a int es el mejor enfoque en general. Sin embargo, si no hay un conjunto de índices, realmente no importa, ahorraría mucho más tiempo indexando que eligiendo la forma correcta de emitir. Excepto, de nuevo, que las mesas son pequeñas. Entonces, tampoco importa.

De hecho, debemos tener en cuenta no solo los costos de comparación, sino también los de conversión:Casting an int a un varchar es un poco más rápido que analizar un varchar a un int . Sin embargo, comparar un varchar que tiene al menos 4 caracteres hará que esa ventaja sea inútil. Si sus valores tienden a ser superiores a 999, transmita a int será más rápido. Pero eso ahora depende de su sistema operativo, la arquitectura, el conjunto de instrucciones utilizado por su binario mysql, etc. La única forma de obtener una respuesta realmente confiable es:comparar esa situación en la máquina de destino.