Desglosando el rendimiento real de la comparación de cadenas frente a no flotantes, en este caso, cualquier tamaño sin firmar y firmado no importa. El tamaño es en realidad la verdadera diferencia en el rendimiento. Ya sea 1byte + (hasta 126bytes) versus comparación de 1, 2, 4 u 8 bytes ... obviamente, los no flotantes son más pequeños que las cadenas y los flotantes y, por lo tanto, más amigables con la CPU en ensamblaje.
La comparación de cadena a cadena en todos los idiomas es más lenta que algo que la CPU puede comparar en 1 instrucción. Incluso comparar 8 bytes (64 bits) en una CPU de 32 bits es aún más rápido que un VARCHAR (2) o más. * Nuevamente, mire el ensamblaje producido (incluso a mano), se necesitan más instrucciones para comparar char por char que numérico de CPU de 1 a 8 bytes.
Ahora, ¿cuánto más rápido? depende también del volumen de datos. Si simplemente está comparando 5 con 'audi', y eso es todo lo que tiene su base de datos, la diferencia resultante es tan mínima que nunca la verá. Dependiendo de la CPU, la implementación (cliente / servidor, web / script, etc.) probablemente no lo verá hasta que alcance unos cientos de comparaciones en el servidor de base de datos (tal vez incluso un par de miles de comparaciones antes de que se note).
- Para anular la disputa incorrecta sobre las comparaciones hash. La mayoría de los algoritmos hash en sí mismos son lentos, por lo que no se beneficia de cosas como CRC64 y más pequeñas. Durante más de 12 años desarrollé algoritmos de búsqueda para motores de búsqueda de varios condados y 7 años para los burós de crédito. Cualquier cosa que pueda guardar en números más rápido ... por ejemplo, números de teléfono, códigos postales, incluso moneda * 1000 (almacenamiento) moneda div 1000 (recuperación) es más rápido que DECIMAL para las comparaciones.
Ozz